Add in JsonEncoder class

- This is a requirement so that we can json encode our UUIDs. This wasn't present in the tests previously as we were always doing a create
[#75970986] Add update via `PUT` to dashboard method

The pattern has changed a bit now, but looks something like:
- To create a dashboard, `POST` to it without a resource id
- To edit it, send a `PUT` request, complete with a resource id

Innovations towards progress:
- `get_object_or_404` the dashboard you're attempting to update when you send a dashboard id
- `@require_http_methods(['POST', 'PUT'])` around the dashboard method to be a bit more explicit about what kind of things we expect in the `view` (*vis.* API controller)
- Adds a new route in `urls.py` for `dashboard/dashboard_id` so we can update pre-existing dashboards
Merge pull request #216 from alphagov/update_dashboard_with_put

[#75970986] Update dashboard via `PUT`