Move is_uuid to validation library

It needs to be used by the dashboard app
Handle dashboard failure modes

Also introduces a govuk signon test decorator.
Extend JSON serialiser to use serialize() method

If an object is a UUID, return a string representation of it.

If the object still can't be serialised, call its serialize() method.
This is useful when nesting Link models inside dashboards, for
example.
Store links when creating a dashboard

When a user POSTs an array of links, store them on the dashboard
model.
Respond to duplicate dashboard slugs with a 400

Standardise errors from the dashboard endpoint by always returning
JSON.
Add a serialize method to a Dashboard