Refactor/overhaul to use Highland streams and clean some things up.

- Refactors both filename collection and file stubbification to use Highland streams
  - Drops `bylines` dependency (and use of `stream` module), adds `highland` dependency
  - Sourcing Highland from its repo until a (relevant) recent patch is published to NPM
- Preserves trailing newlines in stubbified files (were previously dropped/added inconsistently in different cases)
- Consistently names delimiter regex variables throughout (beginStub, endStub)
- Defaults the delimiter regexes top-down instead of bottom-up
  - This reduces redundant checks and follows IoC style
- Keeps track of filenames that get stubbified
- Prints stubbified filenames with destination paths, with silent flag to disable
- Prefers closures to objects for encapsulation when objects are unnecessary
  - Specifically Parser, since it no longer needs to inherit from Transform
- DRYs up parser tests
- Refactors stubbify tests to allow testing on multiple files
- Adds stubbify tests for nested stubs and for no stubs
- Moves everything but cli.js into /lib
- Updates README with usage and details

The refactor helped readability a lot, especially in the tests; despite various small additions, lines are -7 overall (before incorporating the additional tests), much thanks to Highland.
https://github.com/airbnb/javascript, https://github.com/rwaldron/idiomatic.js/, Google, and jQuery all give the convention `= function name(...)`, and the argument I've heard in support is that, regardless of the presence of a name, there's always one space between `function` and `(...)`; if there's no name, that just means the name is the empty string right before the parens. I've never seen or followed a convention to the contrary, but they may exist; can we pick something to specify as the repo's official convention?