refactor(key): moved Key into its own library to hide internals

Fixes #92