Enforce key length constraint of 2048 bytes.

Aside from needing to enforce a constraint of some sort, this change
allows us to definitively specify KeyMax, removing the previous requirement
that keys stored in the map couldn't start with \xff.
Seems like this comes down to a philosophy choice.... about whether there
is a consistent limit, or whether the limits should just be emergent
properties of the underlying implementation.

For example, a different storage engine may be added which has more
restrictive key-length-limits than Leveldb/rocksdb. Should there be a
consistent least-common-denominator key-length-limit? or should the limit
be different based on which storage engine is used.

I guess I side with Peter, and say let the storage-engine produce this
error, instead of enforcing some arbitrary limit. As long as the error is
clear.