Start refactoring metadata handling

Metadata is now its own struct. Struct member names match the key names in the
metadata.

Data calculated from the metadata is still part of the MMDB_s struct.

No need for the KEYS macro. You don't need to pass a trailing NULL to a sub
which takes varargs.

Added start of tests for metadata handling.