Add Iterator Methods.

- ASTNode now has preorder and postorder iteration
  methods:

  - postReduce
  - postEach
  - preReduce
  - preEach
  - each (Flat iteration across direct descendants)
  - filter (as `.each()`, but removes children that
    return falsy value from the callback.

  As a result, it's now easier to isolate AST
  manipulations from one another for more readability
  and flexibility.

- Added .each() to ParserBase (Effectively a wrapper
  around an array of LexToken objects). Planning to
  add iteration and filtering methods around the wrapper
  class, and renaming the class to LexTokens.

- Added manipulation and polling methods, such as
  `.shift()`, `.pop()` to ASTNode. However, replacement
  and removal methods are currently sorely missing.

- Removed `.parent` pointer from ASTNode instances for
  less pointer headache in appending & removing nodes.

- Finally, lots of TODO comments for refactoring points.

Aside: I'm tempted to switch back to simple file
concatenation from Browserify or module systems.