Better test cases for user API

In brief, the current test cases don't test anything except that the server is running and does respond to requests. Moreover, the API is inconsistent and incomplete.

I created a couple of test cases on the user API to illustrate a more consistent and complete approach using the user API as an example.
Appropriate status for general validation errors is '400 Bad Request'