Tweak some spec names.
Relations form a map instead of a list underneath tables.

The names they're given are arbitrary, but will be used to identify them later in the API.
Version numbers must be unique across the application.
Relation names within a version (not just a table) must be unique.

An argument can be made that disambiguating them within a table is
enough, but this allows us to assume a current version number and
address relations directly without mentioning tables.
Type.names returns the NamedType labels within a given type name.
doco
NamedType labels are required to be unique within a relation.