Add SQLite and in-memory key storage drivers

#### Summary of Changes:
* Examples include a SQLite storage driver and a small program demonstrating the user-facing storage API.
 * Updated gradle build files to compile/test example sub-projects.
* Implemented a K2-native in-memory driver.
 * Stores keys in proto message form for the duration of a K2Context.
* Refactored unit tests for storage drivers.
 * Moved all shared testing logic to two super-classes: one for basic testing and another for testing file-based drivers.

In general smaller changes is better than big ones. In this case it would have been nice to split K2MemoryDriver from the SQLite driver. Just something to keep in mind for future work.