Leave Todos in Delete and Upvote on Ideas

These endpoints both require oauth.
Added exceptions and errorhandlers

Most of the code was copied from CritiqueBrainz's source.
Improve Users Endpoints

All functions in the model, now return the user object, which makes
things a bit easier.

Some changes have been made in the output.
This is how Github does things.

GET /users returns a list rather than a dict.

GET /users/{uid} returns a dict that contains all data rather than
wrapping it under {'user'}
Improve Ideas Endpoint

All functions in the model return the object.

The output has been changed similar to Users endpoints.