Code coverage, remove arbitrary/broken code

NOTE::: this contains a few small NON-REVERSE-COMPATIBLE changes.  The biggest
change is that the "rootDir" argument (first argument to the constructor) is
no longer optional. There are a few extra (or changed) exceptions as well.