Improved code quality, removed hacks, implemented OAuthStorage subclasses for DAL and moved to gluon.http.HTTP Exceptions (+ more!)

My major changes to João Alves' code can be summarised in three points:

1.  Reviewed the entire codebase; improving quality, fixing hacks and improving formatting along the way.
2. Rewrote all the relevant exceptions to use gluon.http.HTTP (with correct HTTP error codes + easier to understand specific exception messages)
3. Implemented subclasses of OAuthStorage for web2py's DAL. Now this project is no longer locked-into MongoDB ;]