Replace singleton registry with Registry class

The singleton object was just simply not very OO, and the ugliness in
the tests should have made me realize I was Doing It Wrong.

Paula::Registry provides the same interface Paula itself did. To
replace the interaction with the singleton Paula a new
Paula::CentralRegistry object has been added.

Since it's now possible to have multiple registries, Player has gained
new DSL methods to declare one or more registries to use, and SongFile
objects can select which registry to use to look up players. Both will
use Paula::CentralRegistry unless specified otherwise. Players can now
also opt out of central registration altogether.
Paula(): fix exception text
XMP: update API based on libxmp HEAD

This should be close to the final libxmp API.

This also reorders the functions and structs to match their order in
xmp.h.
SongFile: fix bug when extname is nil
Remove unnecessary `Songfile#to_s`es

Now that FFI correctly supports #to_str conversion for string arguments
to functions, it's no longer necessary to convert to string before
sending as an argument to C functions.
mdxmini: specify struct as type for functions
mdxmini: reorder functions to match mdxmini.h
mdxmini: adust brace style to match other libs