Fix the conflict between reader and typeReader

type defs .typeReader has been removed, replaced only with a singular
reader object. The .typeReader was required because overriding the
.reader was causing custom readers to be used when they shouldn't have
been. The cause of this was previously unknown.

The problem was our lookups on dictionary type readers, we were using
the defaults without a namespace (e.g 'name' instead of
'dictionary.name') both in the default base library and in the meta
mappings. This was being allowed through because of the fallback on meta
mappings in getReaderFn using the non-namespaced name.

To fix the dictionary keys have been prefixed with 'dictionary.', thus
the type definitions now have valid readers and are not relying on the
fallback.