Adding test files for pipe and comma delimited files.
Lots of changes for CLI script testability.

- Moved code into a class so I can stub methods.
- Only execute the script if we call it directly.
- Get all the require-ing working correctly.
- Come up with a testing method.
Finished testing the CLI script. Back to 100%

I decided to go with an integration-level test because I believe it's actually useful.
My other option would be to stub out all the call and test that the behavior is what
I expect. I don't see the value in testing my mocking/stubbing framework.
DRYing up tests.
Cleaning up USAGE, very similar tests, and moving sample files into their own directory.