Ports auth decorators to work with both Django and webpy

This PR introduces thread unique tracking of the WSGI environ, and updates the auth decorators to use the stored WSGI environment instead of web.ctx.environ if the request is being served by Django. Existing web.py should continue to work the same as before.

Also updates some PEP8 compliance changes within all modules touched.
I think the way it's written currently is better, and it's exactly what the 'else' clause with Try/Except is supposed to do. 'else' is designed for things that should run if the Try block succeeds without exception. Generally only the code that you are interested in should be within the Try block which is why it typically should be exactly 1 statement long.