mds: Separate collection encoding from Journaler

Previously, the encoding of entries in a journal
and the communications to load and save the journal
byte stream were both done in Journaler.

This patch separates them, so that Journaler is responsible
primarily for I/O, while the encode/decode of the entries
is done in LogEventCollection.

Signed-off-by: John Spray <john.spray@inktank.com>
mds: add EMetaBlob::get_inodes

Used for filtering in journal tool

Signed-off-by: John Spray <john.spray@inktank.com>
journaltool: add filter by inode
mds: Add LogEvent::str_to_type

For CLI to resolve user input to a EVENT_* constant

Signed-off-by: John Spray <john.spray@inktank.com>
mds: switch __u32 with LogEvent::EventType typedef

Signed-off-by: John Spray <john.spray@inktank.com>
journaltool: add filtering by event type
mds: Add EMetaBlob::get_dentries

For tools that would like to know which dentries are
touched by a metablob, without understanding its
internal format.

Signed-off-by: John Spray <john.spray@inktank.com>
journaltool: filter by dirfrag

Signed-off-by: John Spray <john.spray@inktank.com>
journaltool: add splice
mds: Add getter for EMetablob.client_name

Signed-off-by: John Spray <john.spray@inktank.com>
mds: add getter for ESession.client_inst
journaltool: filter by client
journaltool: handling erasing regions

as opposed to erasing identified events, erasing
a numeric range in the log.
journaltool: move sources into tools/

Additionally remove dependency on boost::filesystem as it
was only being used for directory creation.

Signed-off-by: John Spray <john.spray@inktank.com>
journaltool: remove unused destructor
journaltool: split out classes into files

Signed-off-by: John Spray <john.spray@inktank.com>