Fix #6 - handle identifiers with spaces

If an identifier has a space or a hyphen we should sanitise the key by stripping these characters.
We should also ensure that this does not create any collisions with existing keys or throw an error