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.
Yes, I think post to a path representing a file should mean appending data to the file.

A put to a file means replacing the contents of the file with entirely new contents. For the MongoDB backend, this can be done by deleting the collection and then inserting the new data into the same (now empty) collection.

To read or update a single document, I do think we need to defer that. We need a model that works not just for MongoDB but also for Hadoop HDFS and other backends, and it's not yet clear what that would look like. But the basic operations of "append data to this file" and "overwrite this file" are pretty central and will be supportable on any NoSQL backend.