Separated block tests into their own subpackage.
Made file expands require a specified root_dir

This made it necessary to add this constraint to block expansion as
well. Includes updates to the unit tests to accept this behavior.
Fixed path expansion with vars in relative paths.

There was a standing bug in which a relative path that contained a
variable was expanded before variable substitution. The code is now
cleaner so that this is no longer a possibility.