Use abort() for error handling

This will make it easier to refactor common code when we implement the
data-set emptying endpoint.

Also modify exception handler to extract the description from the
HTTPError, rather than the name
Refactor the way POSTs are validated and handled

- split validation of data-set existence and authorization into two
  helpers
- rename _write_to_data_set to _append_to_data_set due to the fact that
  it's called by a POST, and we will implement a "set" (PUT) later.
- change signature of _append_to_data_set to take data as an argument,
  rather than the function extracting it from the global request object
  (side effect, meh)
Merge pull request #275 from alphagov/refactor-write-api-functions

Refactor write api functions