Refactor to clean up source and fix extensions bug

- add roots.bail for detecting extension errors
- document everything touched thoroughly with jsdoc
- change extension format, instantiate each compile
  pass to clear context
- boost dogecoin reward for contributions :dog2:
- add errors documentation
- update extensions documentation
- update extensions.register method to take array
- remove unnecessary class nest in FSParser
- remove unnecessary promise wrap from compiler.sort
- wow that was a lot
fixes, thanks @samccone :dog2:
remove extension.remove, fix up tests
document lib/index
refactor and document compiler and write hook
document config file
document local server
update extensions docs
small bugfixes, tests for write hook in place
patch for files with no extension
Merge pull request #390 from jenius/v3#refactor

Cleanup and Resolve Extension Bugs