Add `read` function to library

This is the function that will be called by client applications to read
incoming data. It requires a library for definitions as well as the
id (name) of the data type being read.
Clean up library naming

oldLibrary -> refLibrary
newLibrary -> library

The naming closer mirrors that in the java codebase and reflects the
fact that the earlier built library that was named `old` is actually
used as a reference when building the `new` library.
Remove superfluous `reading` logging
Tame logging levels

Mostly moving the extra verbose infos to debugs, and a couple of errors
are now downgraded to warnings since we can continue regardless of them.
Add type annotations to the meta types

The types allow readers to be found later, without explicit classes and
some staticallytyped.js we need this to prevent our ignorance.

The Meta Identified is still a strange unknown. I don't know what we can
do with this yet.
Add missing reader placeholders

Some functional readers have been added, and some non-functional readers
too. The non-functioning readers throw an exception on use, but nothing
appears to be using them so far.

This change also removes most of the warnings from the log output.
Remove log warnings on already known definitions

The default starting library already contains definitions for a few
dictionary types that are required to bootstrap reading of the
dictionaries.

These definitions are still contained in the dictionary files, so when
we hit them we can build an actual representation and throw away those
that we fabricated. We don't want to warn on this occasion.

The check that the existing name is not equal to the new name helps us
here, but perhaps we should be more specific and hardcode these default
definitions.

In any case, if a dictionary tries to override a definition with a new
name then we will experience a warning.