Improve error responses

This DRY's up the error data structure response change I recently made.

I also updated the deps and Clojure version and added tests for the new error response data structures.

If this is merged into master, I'm going to release 0.3.3 to Clojars so we can just depend on that in ballot-scout.