Basic storage abstraction featuring mongodb & memory adapters

This patch adds a basic `Storage` persistence layer abstraction for now capable of using two adapters:

- `MemoryAdapter`: data storage in performed in-memory;
- `MongoAdapter`: data is stored in [MongoDB](http://www.mongodb.org/); you must have a mongo server instance running locally in order to run the integration tests.