Made Conversion thread-safe and smaller in memory and storage

Conversion previously stored two copies of tracks, one as Refs and
the other as RefToBase. Only the RefToBase were used internally and
externally. However, the RefToBase were filled from the Ref as needed.
Therefore I dropped the Refs and instead fill the RefToBase from the
Refs in the appropriate constructors. This means the vector of RefToBases
does not have to be mutable and therefore the object is thread-safe.

Added a ROOT I/O rule which allows reading back the old format which
has the Refs in the case where only the Refs were ever filled.
fixed bug which lead to seg-faults in IB tests

In the constructor of Conversion, resize() was called instead of reserve(). This caused the vector to contain an invalid first entry which caused the seg-fault.
Merge pull request #1305 from Dr15Jones/threadSafeDataFormatsEgammaCandidates

Multithreading fixes -- Made Conversion thread-safe and smaller in memory and storage