Handle POST to /data/fs/[path]

Each line of the body is submitted to MongoDB as a "save" (which is effectively update/insert).

Given the MongoDB model, this actually supports creating a new collection, saving new documents to an existing collection, and updating existing documents (see the README).

All lines are parsed before any data is saved, so nothing is changed if the input is bad. However, partial writes can occur if the MongoDB driver gives an error.

Also added a command `save [path] [object]` to the REPL, and made the `ls` and `cd` commands actually work, for the most part.
A good rule of thumb for FP is to push control decisions as high as possible, which means "don't commit to anything before you have to." In this case it probably means returning an `Option` here so clients can deal with the "nonsense" result in a way that makes sense to them, rather than hard-coding the "way that makes sense for the repl".

Also note if you make that change, you should delete the conditional inside the `Path` constructor since the path will always be relative if it makes it that far (this is true in the existing code, too).