Cache 1033476

* [x] Add caching of topics too.
* [ ] Make the loading bar disappear at the correct time. Currently it disappears early.

This adds an option for updating the cache if the user doesn't have many documents cached already.

* Many is defined as 5 or less. 
you should dedent this block (line 24 through 43) by one. It makes the parens/braces line up in a way that makes it easier to debug.

In general, prefer this

```
somethingThatReturnsAPromise()
.then(function() {
    /* stuff */
});
```

Over this

```
somethingThatReturnsAPromise()
    .then(function() {
        /* stuff */
    });
```

(4 space indentation for emphasis)