Updated file header
Introduces the use of local storage into the application

This commit is an attempt to reduce the number of RPC calls to the
server. By caching the user's profile data locally using the storage
space introduced with HTML 5, the number of RPC calls to retrieve
the profile data is reduced.

The code has been introduced in two screens, the ContestDetailsScreen
as well as the ProfileScreen.
Modified the update profile code to update the local storage as well

Modified the update profile functionality to modify the profile data
stored in the local storage in addition to the database. This ensures
that the user experience is as seamless as possible.
Removed the LocalStorage class as it isn't needed.
Added in basic support for history tokens.

TODO: Go through every single instance of setContent() and ensure
that history tokens are set.

I also added a new class containing some basic field validations.
Added history tokens for most of the links.
Fixed a bug that occurs when email is changed twice in a single session.

The bug was caused due to Shiro using the email address as the primary
pricipal of the authenticated session. This causes issues if the email
address is changed as Shiro offers no avenue for updating the pricipal.

The bug is fixed by changing the authentication process to use the
never-changing contestant_id primary key of the Student class.
Merge pull request #1 from Ayrx/master

Local Storage // History Tokens // Bug fix
Added in code to assign timeslots upon confirmation

* Timeslot is assigned upon confirmation of the account through
  email.
* If the account is from any country besides China, a timeslot will
  be assigned based on a first come, first serve basis.
* Timeslot will be stored in the database using a millisecond format.
  Any part of the application that needs to display a nicely formatted
  time has to parse this millisecond format. This is made easy using
  the joda-time library.
Added a phone number watermarks on the registration pages.

* New WatermarkedTextBox widget that extends TextBox to support
  this function.
* Added in different watermarks for each individual country as per
  the phone number format for each country.
* NOTE: One must apply a cheap hack of calling .setText("") when
  changing the watermarks using event handlers due to some issues
  with the styling. An example of this can be found on RegisterScreen
  line 96.
Modified module path to reflect move to organization repo.
Merge pull request #2 from Ayrx/master

Timeslot // Watermarks // Changed Module Path