Improved Password Reset Tool

Closes #1471

- add api and User model methods for generating and validating tokens
- add routes and handlers for reset password pages
- add client styles and views for reset password form
- some basic integration tests for User model methods
Merge pull request #1534 from jgable/passwordReset

Improved Password Reset Tool
Temporary fix for config loader

issue #1521

- Reverting some of the refactor towards including Ghost as a module as it prevented Ghost from loading when no config was available.
Merge pull request #1549 from ErisDS/config-loader-fix

Temporary fix for config loader
Create the config module, initially used
to standardise getting paths and absolute URLs.  Easy
to extend for other configurations we may need.