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