Implements PrefixStore

PrefixStore handles storing unique field -> prefix associations used by
Xapian::QueryParser. Since the bridge provides many 'meta' databases that search
across multiple databases, we need an easy way of yielding a union of unique
associations for a given language (or all languages) so that the meta databases
can effectively query over its child databases

[endlessm/xapian-bridge#25]
DatabaseManager uses PrefixStore, custom prefixes

Databases now can provide their own custom prefix associations for use in the
bridge by storing a "prefix map" in a Xapian metadata field called "XbPrefixes".

The prefix map should look like:
{
  "prefixes": [
    { field: "field1", prefix: "prefix1" },
    { field: "field2", prefix: "prefix2" },
  ],
  "booleanPrefixes": [
    ...
  ]
}

Now meta language databases like "_es" use a queryparser which uses a union of
registered Spanish database prefixes, and "_all" uses a union across all langs.

[endlessm/xapian-bridge#25]