Remove all Cache usages

The Map and Keywords controllers will be merged together into a single setup
controller.  There will most likely be a controller for keyword translation
which will be accessed via AJAX.

Header still uses the cache but will be changed to use the global setup soon.
New header

The header now only has "home", "New query" and "View results" links.  The result link is only visible when there is an id in the session.  The session is passed around as an implicit argument everywhere.
Setup page styling

Same styling as the old page; centered on Europe as before.
Improve Gathering error handling

  - addSession returns a Long with the new id.  This ensures that the id of the
  	added query is actually the one the user thinks it is.
  - update and display are composed with an "IfIdExists" action which ensures
  	the specified id is in the DB
More graceful Gathering failures

  - When trying to display or update a query that doesn't exist
  - When starting a query with overlapping areas
  - When starting a query with duplicate keywords
  - When starting a query with empty keywords or areas
Rename RESTfulGathering -> Gathering
Fix database tests

They now use their own in memory database.
Make TranslatorSpec into a test

Removed the duplicate code with Translator (which now returns Strings instead
of JsValues).
Make a controller for translations

On a GET to /translate, with source, dests and keyword in the query string, the
controller will send back a JSON object with "translations" and "synonyms"
entries.
Add a user table to the data store

Each session is associated with a user.
Add a session management panel

Lets users pause, resume and view all of their sessions. Pause and resume don't
actually interact with the TweetManager yet.
It is simpler to use a GET for update

That way can use the router to generate the urls.