*NOT READY* Refactor

Just an early PR to get a bird's eye view of the work in progress and establish some transparency.

Main efforts in this PR:

* Simplify key parts of the codebase to increase maintainability
* Isolate functionality into modules
* Deprecate the use of the `-rr` option and have `-r` absorb respecting the directory structure if the input is a directory
 * If the input is a file, then the markdown will be dumped into the root of the output directory (the old behavior of `-r`)
* Support the output being a markdown file: `jsdox myFile.js -o myOutput.md`

Fixes #49
Fixes #56
bind won't help accessing the variables in the closures.  If this ever becomes a problem, we'll remove, or add more names `safeContextKeyword` can take an array.