Rewrite storage service to use PouchDB

Pushing this up early as we need more eyes on it. Known bugs listed in item:684.

Refs item:660.

Note, although the interface is mostly the same (some work remains to streamline storage service), the result type returned from Pouch can differ, e.g. `storageService#get` returns an array of objects rather than a nested object.