Merge of new validator with tests

Per @gvwilson request (issue #34).
It's deprecated in python 3, but in python 2.x I've encountered situations and deployments where 'rU' was necessary to open a file correctly. (that was the original motivation; see https://www.python.org/dev/peps/pep-0278/ ).

For our use case: we're primarily targeting python 2, and we fully export users to collaborate across heterogeneous platforms with inconsistent line terminator conventions. I'd consider an alternative to rU that wasn't too clunky, but wouldn't remove it completely without extra cross-platform testing.

If our only concern is the unsightly deprecation warning, I can probably rig a filter on the logger to suppress it in python 3...