Architectural changes

Hi abahgat,

I saw your skeleton code and thought there were a few things that could make it a little more out of the box friendly.  Most of these things are small but in the end are more modular and dynamic.  If for any reason you don't like the changes just reject the pull request.  But if you do, I didn't want to take your work without improving it.

## change list
* Create a base class module for the BaseHandler
* Categorize handler functionality into modules
* Combine all routes and app in one file so that ```uri_for``` will have scope
* Add Jinja2 and ```uri_for``` to jinja2 globals
* In ```BaseHandler``` add ```template_name``` and ```template values``` for use in ```render_template```
* Set ```self.template_name``` and ```self.template_values``` before calling ```self.render_template```
* Refactor all templates to use uri_for('route_name')
* Move models.py to models.user.py