Replacing err with flask's builtin exception handling

For a full end-to-end exception handling system, we should use what flask provides. Currently we have 2 ways to serve non-200 responses: the err function and errorhandler. Since errorhandler gives us better end-to-end control on delivering non-200 responses, we should use that only. For all other exceptions (desendants of HTTPException), it will be converted to json in the json handle in srv.py