Serialize paths length-prefixed instead of 0-ending

This is a breaking change.  Old databases need to be
deleted.
Polymorphic serialize/deserialize interface

Breaking change on little-endian systems.

Serialization and deserialization of questions and answers
can now be done incrementally to/from a file, memory buffer,
etc. as deemed by the caller.

A common interface eases development of questions and
answers and fixes a number of issues such as endianness.