kvlayer escapes keys.

The escaping scheme is the one used previously in Vertex indices:

    %   -> %25
    NUL -> %00

Using this escaping scheme has the added benefit that it is backwards
compatible with existing index values that have been escaped.

Also, to simplify code, kvlayer declares a delimiter to use to separate
keys instead of it being a parameter to the key (de)serialization
functions.

Finally, the `join_key_fragments` and `split_key` functions have been
replaced with `serialize_key` and `deserialize_key`, respectively.