Use a new Page instance per page

Using a 'change' event was an artifact of ruhoh originally being developed in javascript.
Change compiler API to take in opts hash

We no longer pass a Page instance to to tasks + an opts hash is more extensible.
Convert Ruhoh to work as a ruhoh instance
Pass ruhoh instance to page and templaters
Pass ruhoh instance to parsers as module instance variable
Pass ruhoh instance to previewer
Re-implement compiler tasks to accept a ruhoh instance
ruhoh 2.0
Refactor compiler tasks to use class instances
Automatically require directories

Also standardize converter file in the same way the other files are organized
Modularize the previewer as independent rack applications
Fix compile target to accept cmd arg, config.yml option or default.
Update client library to work with ruhoh instance
Add ruhoh instance at 'ruhoh' in console and automatically initialize the database update.
Fix tests ... almost
Get parsers working with class instances

Trying to factor out the methods into reusable components... kinda complicated with now =/
Lazy-load all secondary-data on posts dictionary

Use the mustache templater rather then the parser to build the data only when the template calls it.
Use the dynamic @ruhoh.db in the templater rather than a static attribute hash.

This let's the db take care of smart lazy-loading.
Lazy-load all database data endpoints

Database data only loads when called and caches the result. When a file changes the cache should be cleared so new requests can load the fresh data.
Add ability to update singular resources in the database