Until now, 'era_invalidate' read the live metadata (superblock), instead
of the metadata snapshot, when using the --metadata-snapshot parameter.
Fix this by passing the location of the metadata snapshot to
'open_metadata()', when a metadata snapshot is used.
Signed-off-by: Nikos Tsironis <ntsironis@arrikto.com>
We had a cycle from transaction_manager <-> space_map, and also from
the ref_counters back up to the tm.
This prevented objects being destroyed when various programs exited.
From now on we'll try and only use a shared ptr if ownership is
implied. Otherwise a reference will be used (eg, for up pointers).