Thread Safety and Multi-Use

- Added thread safety
- Added another option to nil out blanks
- Added ability to run against multiple file formats
- Cleaned up some of the confusing daisy-chained code

and best of all, I added tests for all these changes :)