Abstracting Storage API

- Abstract Storage API
- Create WPDB adapter to handle the existing WPDB operations, should not be breaking existing code.
- Create MongoDB adapter to use a NoSQL approach, and to further abstract the APIs

- This flattens the context table into three additional fields with the main document.

WIP, the following remains:
 - [x] Parsing Meta Query
 - [x] Parsing Contexts Query
 - [x] Abstracting the install/update process
 - [x] Provide a Filter / Settings Screen to add MongoDB connection details
 - [x] Add proper install/update routine to MongoDB, ex: Ensuring proper indexes are created

AND
 - [x] Eliminate multiple contexts logic, remove the table, alter the main table, and db update routine.

Remaining:
- [x] Fix date filter issues, eg: Today is passed as : From 2015/05/15 to 2015/05/15 , doesn't really make sense, eh?
- [x] Add proper indexes to MongoDB, instead of the generic ones currently implemented
- [x] Add data migration routine for the context elimination change
- [x] Fix unit tests
- [ ] CS Fixes everywhere!

And of course, more and more testing everywhere.

Update: After discussions ( mainly on #484 ), i added the task of eliminating multiple contexts logic, with all the fancy code needed to tweak db tables.