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.
Close file after hashing contents

Bug detected by the clang static analyzer.
Fix dead code warning by clang static analyzer
clang static analysis build

Run e.g.:

    make clang-static-analysis scan_build=$HOME/Downloads/checker-276/scan-build
PBX project file parser

Currently only the top-level definitions and the object
ranges of a PBX file are parsed.
PBX project file Question/Answer