added documents module
fixed add method
added additonalProperties. simplified add method. fixed set method. added addRaw method.
added setRaw method
add SyncedVar (fixes #37)
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).
add first unit tests for prefixtree
check env.called in unit tests
add tests, remove storeObjects, fix case with both subfolder and document
Added some more unit tests (still a couple to go).
I removed the storeObjects method because it makes no sense to have it
at the PrefixTree level; if we want to have it, then it should go on
the baseClient level (and PrefixTree should just pass it through like
for other methods).
One test I added actually failed, because it prefers to go deeper if
given the option. Instead, it should return f/o/_o if it exists,
even if f/o/o/ also exists.
Tests for setMaxLeaves
Various tests that see if it picks the correct depth to store,
get, and remove documents. It is important that you never get
a situation where the same key is stored twice at two different
depths. At the same time it should automatically keep the number
of documents (not subfolders) in a folder always inbetween zero
and the value of maxLeaves at the time of adding something. In
practice this simply means that it creates a new subfolder if
maxLeaves is reached.
Ignore maxLeaves if key is too short
While writing the comment of the previous commit, I realized there
was a danger that tryDepth would try to go too deep for short keys.
The deepest you can go is `depth === key.length`, then you get for
instance path 'f/o/o/_' for key 'foo'. This means maxLeaves can be
violated if you have a lot of short key names, but if you stick to
a small alphabet in the key naming then it will never get extreme.
Test and fix PrefixTreefireInitial
This test calls fireInitial with only f/o/_o in there, and I fixed
4 or 5 typos in the method (it was untested so far). It would be
good to build this test out more, checking it goes down the whole
tree even if there are several subfolders branching off sometimes.
I will prepare another commit that builds this out.
Expand the PrefixTree.fireInitial test
Added a few more items, and multiple folders
Add one more item to the fireInitial test
I wanted to make sure it also deals correctly with branching
subfolders on nested levels.
Add naturaldocs documentation
Adding naturaldocs-style documentation as per @silverbucket's review
comment https://github.com/remotestorage/modules/pull/40#issuecomment-43066575
Add naturaldocs documentation and rename name to storagePath
While writing the documentation, I realised storagePath is a better
variable there than name, because it is used exclusively to determine
where to store the document representing the variable on remoteStorage.
Move email credentials into CredentialsStore, update schema
It is better to have credentials as a separate OAuth scope, and to
be able to encrypt them with a master password. So far only sockethub
credentials were in a separate module, this PR does the same for email
credentials, which were tagged onto the messages module until now.

This commit also switches to the new CredentialsStore class, and updates
the schema to match the latest API changes in sockethub.
Add facebook module
This PR adds the Facebook module. To do:

* [ ] add schema
* [ ] add API docs
* [ ] add unit tests
remove messages store
In meute 0.4, messages were stored in the email module. From meute 0.5
onward, the messages module from Dogtalk will be used, so this
functionality is no longer needed inside the email module
id.toString() and cache('', 'ALL')