Reorganize java gradle build file.

* Defined common configurations for all and sub-projects.
* Dependency injections for sub-projects (on main project).
Add gradle build file for examples.

* Nothing to build directly in the examples directory,
  so the build file just disables all tasks.
Add more reasons for illegal addresses.
Add more utilities to AddressUtilities.

* Methods for query, fragment and host component
  checking/extraction.
* Additional unit tests included.
Add SQLite storage driver example.

* Includes gradle build file for pulling sqlite-jdbc
  driver and unit tests.
Add gradle settings file.

* Will include sqlite-example in the build.
Expand save/load convenience methods.
Add storage system usage example.

* Just a program with a main() method.
* Unit test executes the example.
* Gradle script included to pull SQLite driver.
Add storage example to build list.
Add test for address normalization.

* ...and fixed a bug for it.
Add empty query norm. test.
Add empty frag/query norm. test.
Add %20 in key id for SQLite driver tests.

* Provides better coverage.
Generalizing driver unit tests.

* Add super-class (boilerplate) common to all driver
  JUnit test classes.
Generalizing file-based driver unit tests.

* Add super-class (boilerplate) common to all JUnit test
  classes for testing drivers that use the local file-system.
Add utility for checking failed loads.
Migrate K2FileSystemDriverTest to new framework.

* Improves code-reuse in testing drivers.
* More concise/readable tests.
Migrate SqliteDriverTest to new framework.
Add K2-native in-memory key storage driver.

* For temporary storage of keys (until the
  the K2Context is garbage collected).
* Unit tests included.
Add memory driver to example.