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.

Hmm... ok, since we haven't really worked out how exactly the high-level API is going to be used, I'll change it to the lifetime of the VM. Shouldn't be hard to revert to something more restricted if we need to in the future.