Rewired MongoDB storage service to use GridFS.

The previous implementation suffered from scalability problems.  As the number
of entities in a given state snapshot increased, the size of the MongoDB
document also increased.  Because MongoDB requires that all access to a given
document read the entire document into memory, it imposes a 16 MB limit.  The
previous implementation made assumptions about the size of a state snapshot that
were unrealistic, as it did not account for state growing in both the iteration and
entity dimensions.  GridFS was used to avoid this problem.  Each key is written
to an individual file.  At present, an individual key does not approach the 16 MB
limit, but this does provide a layer of insulation from the problem in the
future.  Also, this will allow state keys to be written out individually rather
than accumulating them in a single document to be inserted as a whole.  This
will provide a much more scalable implementation in terms of memory.