new key structure - keys are strings, and we parse them in a very generous manner to avoid errors. works with storing them "natively" as well as doing datatsore.Queries looking for them
the encoding and decoding now use the string aspects of Key