Improve get_user timing in statsd

Since the original statsd timer was added, caching of users in
PostgreSQL has been added. The timer is now heavily sqewed.
Merge pull request #190 from alphagov/improve-get_user-timing

Improve get_user timing in statsd
Dashboard models

Basic dashboard model, not including modules or organisations

Most fields are pretty standard fields using djangos orm, but links are
a separate model. There is only one transaction link per dashboard, but
multiple other links can be added

The serialize method will return a dictionary that can be jsonified in a
format spotlight expects
Merge pull request #191 from alphagov/feature/dashboards-model

Dashboard models
Update the version of PyHamcrest

Everything still seems to pass our tests and it adds some new matchers
(hello calling/raises)
Migrate models into sub-directory

The dashboard model is pretty massive and the thought of adding modules
to the file too gives me the heebies. I've broken the dashboard model
out to its own file so that we can break up all the models needed by
this app.
Add Module and ModuleType to dashboard app

Dashboards' have many modules and we need to represent them. Each module
has a type which enforces the schema for the options JSON blob. This
JSON blob for options exists so that we do not need a table for each of
the module types. We are not going to be querying into this field as
part of an app, only ad-hoc so a JSON field should be perfect.

The two main requirements for modules are that no two modules can have
the same slug on the same dashboard and that a module's options should
validate against its type's schema.

Slug uniqueness test has a transaction.atomic wrapper on the create
because of the way django deals with transactions:
http://stackoverflow.com/questions/21458387/transactionmanagementerror-you-cant-execute-queries-until-the-end-of-the-atom
Merge pull request #192 from alphagov/feature/module-model

Module models
Fix serialization when no transaction link
JSONSchema lib is now required always

This library is now used to validate the options passed into a module.
Merge pull request #193 from alphagov/feature/module-model

JSONSchema lib is now required always
Allow dashboards to belong to an organisation
Add an initial migration for dashboards

There is a dependency on the dashboards migration to the organisation
migration
Merge pull request #194 from alphagov/dashboards-organisations-foreign-key

Allow dashboards to have organisations
Add in factory boy to simplify test setup
Tests for spotlightify and helper methods on dashboard

spotlightify should return a dict that conforms to spotlights dashboard
schema.

Here we test that it handles links and agency deparment correctly. We
also have unit tests which flesh out the agency/department logic in more
detail
Finish dashboard spotlightify method to meet the test requirements
Tidy for pep8 and remove print
Refactor and simplify spotlightify and helper methods
Merge pull request #196 from alphagov/dashboard-spotlightify

Dashboard spotlightify