Add document store

```
// Public: DocumentStore manages a list of documents and their details. The
// public interface consists of four methods: load, remove, get, and search.
//
// Example Usage:
//
//   > var documentStore = new DocumentStore
//   > var foo = {filename: "foo.md", modifiedAt: new Date, body: "hello"}
//   > documentStore.load(foo)
//
//   > documentStore.get("foo.md")
//   {filename: "foo.md", modifiedAt: "...", body: "hello"}
//
//   > documentStore.search("foo")
//   [{filename: "foo.md", modifiedAt: "...", body: "hello"}]
//
//   > documentStore.remove("foo.md")
//   > documentStore.get("foo.md")
//   undefined
//
```