Local Storage // History Tokens // Bug fix

This pull request contains three major updates to the codebase.

### Local storage

Introduced the use of HTML 5 local storage to cache the student's profile data upon login. This is quite effective in reducing the number of RPC calls to the server for displaying the user's information in various pages and allows for fast page loading on subsequent visits.  

The application will check if any of the user's data is missing from local storage. If any information is missing, the application will make an RPC call to update the information from the server. Any data in the local storage is cleared upon the user logging out.

### History tokens

Introduced GWT history tokens into the application to allow support for bookmarking and usage of the browser's forward and back buttons. Most of the links *should* have already been replaced with the appropriate history token calls but I might have missed a few.

### Bug fix for Authentication

As per 44c1c74, the authentication code has been modified to use contestant_id instead of email for the authenticated user's primary principal.