Lookup dashboards by slug

- Gives us nicer urls like /edit/name-of-dashboard
- Slug is also a unique identifier
- Avoids exposing uuid to end user

I prefer this way of looking things up because it's kind of human readable but at the same time works for the computer. UUIDs are still really useful for how we internally manage resources. For example we could potentially look up the history of a resource whose `slug` has changed multiple times, but the `UUID` will have remained the same.
Change `spotlight_config_migration.py` to use dashboard slug

- (✿◠‿◠) Tried and tested with today's database! (●ω●✿)
Accept either slug or UUID to return dashboard resources

- A bit fugly in the views because we're doing stuff like `is_uuid(identifier)`
- Allows us to do e.g. `/dashboard/{uuid}` and `/dashboard/{slug}`
- Could do with a refactor but I think that can probably be bundled up with https://www.pivotaltracker.com/story/show/78992766
Add `test_list_modules_by_uuid_or_slug` test

- Show that you get resources back by slug or uuid
Merge pull request #255 from alphagov/get_by_slug_or_uuid

Get dashboard by slug or UUID
Return errors as per JSON API suggestion

See http://jsonapi.org/format/#errors