change memory layout: use vectors of values instead of vectors
of pointers to values allocated on the heap. Carefully reserve all
vectors to insure that the addresses of the values are stable.
add const when possible
prefer struct over class for interfaces with only public methods
prefer DeclareInterfaceID
remove obsolete SVN keywords
when returning 'owning pointers' do so using std::unique_ptr
add final
MuonLogHit: replace vector of either one or two pointers with
std::pair
prefer implicit destructors
prefer STL algorithms over raw loops
prefer auto
minimize scope of variables
in 'factory functions' return the created object instead of
using an OUT parameter and returning a StatusCode