Add basic K2 storage system implementation.

- All exceptions.
- Storage driver interfaces
- Internal K2 interface (K2Storage/Store)
- I18n strings
Remove redundant dependency from InstalledDriver.
Replace // with /* for copyright headers.
Add comments and fix formatting for InstalledDriver.
Fix missing javadoc @returns on wrap methods.
Add more documentation to K2Storage methods.
Fix issue with annotation not retained at runtime.
K2Strings now throws AssertionError on missing resource.
Tweak reflective verification of driver classes.
Disallow UPPER-CASE for driver identifiers.
Case-insensitive matching for address scheme and driver id.
Add more null pointer checks.
Change driver API to reduce reflection requirements.
Remove i18n exception messages.

- Consensus: it does not make sense to i18n at this level.
- Changed to messages to enums on exceptions.
- Makes it easy to i18n at a higher-level.
Merge branch 'master' of https://github.com/google/K2
Add exception for wrapped keys.

- Throws when the stored key is wrapped and a
  wrap key is either not specified or wrong.
Relax requirements for driver constructor.

- A package or protected access constructor is now perfectly legal.
Fix closing brace indentation.
Move address from open() to constructor.

- Otherwise the Store object would be broken after
  construction until open() is called.
Add driver access to Store for unit testing.