Consistent write errors refactor

This implements an error response from both post actions in the write api which returns a json string representing a list of error strings. It helps a client user fix all of their data errors in one go without lots of back and forth.

This will look a bit of a mess without decoding the json and using it properly in performance platform admin (and the existing admin if we don't make the switch soon).

**EDIT: The existing admin error handling is already broken and no one has complained thus far. If you look in kibana there are uncaught http errors coming from here:**

https://github.com/alphagov/backdrop/blob/master/backdrop/admin/app.py#L221 

**The client was swapped in but the old exception handling code was never changed. Tom has agreed we can leave it and just fix up the new admin**

Should this change also include the error response formatting for data set creation and emptying? This will be more consistent but it will mean making some changes to stagecraft now. (and whatever uses empty?)

The error strings are of mixed usefulness so comments about improving them are welcome.

It should make doing error position in a later story a bit easier. Some of the errors are less useful without this so it might be worth bumping the priority of these changes.