unit tests, coverage, some refactoring, and model changes

The essence of this PR is to add some minor performance enhancements to the TutorialUser creation.

* SessionKey is made a natural key to the TurorialUser

The following fields have been made text fields and limits have been removed:

* http_user_agent
* http_real_remote_address
* http_remote_address
* http_accept_language
* http_referrer

Introduces very basic unit tests and instructions for code coverage.
Introduces caching of the TutorialUser object

closes #23