Use Hapi

let's use hapi js, while changing the code i noticed some sweet
stuff hapi does for us out of the box:

 - taking care of bodyparsing & query parameter parsing
 - taking care of validation
 - taking care of routing

I had to add some custom code to use our old error messages,
however if we are fine with the one from hapi, I am happy to
change that.

I deleted one test because it does not make sense for us now,
as the hapi validator takes care of it for us.
Why did you remove this one?  When adding it again it will fail with status code `500`.  While I don't care so much about the error message, the response status code should definitely be a correct, however.