Made the EmptyObj mechanism more flexible and added a bunch of tests for
that. Improved the testing framework to summarize results. Added a
ParseError exception instead of just printing to stderr.

-Peter Mawhorter