Add PrefixTree

A PrefixTree is a transparent layer on top of a (scoped) baseClient. It allows you to write as many documents as you want (tested up to about 20,000) without using any slashes in their paths. So basically it's then a key-value store, and it will "feel" like these documents are all in the base folder. In reality, PrefixTree creates a folder tree based on key prefixes, and translates keyToPath when going from your module code to the baseClient, and pathToKey when coming back from the baseClient to your module (e.g. in change events).