Add lots of readers. Reading messages is failing

I suspect it's failing because it's relying on types defined in the core
map that are not available here. The reading needs to rely on the
oldLibrary parameter instead of the new Library, but this also needs to
be done in a way that the core relies on the newLibrary.

The java program handles this by passing the core in as both the old and
new. Can we do that?
Register types with full name

Thus preventing clashes between definition and meta.definiton for example
Add the remaining structure readers

And build the library from definitions in the previous libraries.