The type of java String object avro uses in records is configurable. This includes
keys of Map fields. When using keyAsColumn prior to this commit, the keys of map
fields were always java String types. Now, the type of String used is inherited
from the schema definition. This makes records consistent with how avro would
work against other storage backends.

One of the implications to enabling this capability is the addition of two new
abstract methods on the EntitySerDe. These are:

serializeKeyAsColumnKeyToBytes
deserializeKeyAsColumnKeyFromBytes

These methods should be overridden by EntitySerDe implementations such that
they serialize and deserialize the keyAsColumn keys according to that
implementation (as opposed to just bytes as was being forced before).