Add support for custom key strings

This is a breaking change. Previously an annotation of @Key("x") would
correspond to the key :x but now it corresponds to the string "x".