Use standard package.json formatting

If the package.json file does not follow the standard formating then git
diffs become messy anytime someone wants to add a dependency via npm with
--save or --save-dev. This is because npm will read in the file and
automatically format it which will cause several modifications to
show in the diff.
Fully abstract the template manager

The template manager should be generic an not responsible for discovering a
resource's filename. It should simply accept some pre-compiled source and
then render it according to a given engine type.
Fix dual-callback issue when rendering stylus

Something is up with the stylus source when rendering asynchronously. If it
finds an error it will execute the callback passed in twice.
Fix html exists bug
Add basic templateManager tests
Add basic integration tests