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).

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 (and whatever uses empty?) now. 

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.