Implement full metadata row processing for search

- Added SearchResultProcessor interface to Index, which has one method -
  process - that accepts a Map<String, String> that represents a single
  metadata row returned in a search.
- Add override method for search in Index, accepting a
  SearchResultProcessor
- Implement override in FusionIndex
- Change indexTool search function to exercise the above
Integrate changes for github issue #311

- search method on IndexResource now checks for a detail parameter. if
  the value is "true", it'll run the search(Map<String, String>
  , SearchResultsProcessor) method and give the full detailed results in
  the response.
- updated pom to point to new version of cloud storage jar (hereby
  called v1.1)
- updated add_jar_to_maven.sh to add new jar to repo with correct
  versioning
issue#294 resolved and onCreate debug dialogue is not shown
corrected the wrong state-change
time is now measured by using system time function
Index.SearchResultProcessor#process returns a boolean
Adding JWT verifier code

Interface and implementations for JWT verifiers
Adding JWT instance to app, config
Implement client auth and JWT service auth

In retrospect, I probably should've broken this into at least two
commits, but I didn't and so here we are.

- Clients can now be required to pass a Google signed JWT auth token to
  the service to make queries (configurable in the config file)
  NB: I've only figured out how to get this token on the client side
  from an Android app; I'll add the sample code I wrote to test this
  to git after this commit.

- The server now uses a service account to access Google APIs (Fusion
  Tables at this point). This eliminates the need for manually
  generating the auth and refresh tokens to put in the config file. It's
  also how server processes are meant to interact with Google APIs, so
  that's nice.