Replace the UUID interface with a string typedef.

Also renamed registeredUUID to canonicalUUID.

Fixes #38.
I've filed #48 to split the attributes.

I'm definitely open to changing the list of Bluetooth-defined UUIDs into some other form. Providing only string names doesn't work because users need to compare Service/Characteristic/Descriptor objects' `uuid` fields, which will be numeric, but we could potentially have `canonicalUUID()` map from names to 128-bit UUIDs in addition to 16-bit UUIDs to 128-bit UUIDs.

If you have a concrete suggestion for replacing the list, could you file an issue describing it?