Separated tests from code by directory.

We used to keep all of the code and tests together in the same
directories. This makes actually reading through any body of code or
tests more difficult because you have an added burden of parsing
filenames for "_test" and correctly identifying the relevant elements.
In the interests of the long term health of the project, the tests are
being moved into a directory of their own, which in turn allows for
an easier separation of code from the testsuite in the future.
Added simple tests requirements file.
Cleanup in settings test code.

Added better handling for a set of active patches during a test.
Renamed several small functions and added a simple validation test
which ensures that we can load a config file without errors.
Fixes a naming ambiguity in settings

Because a salve config object is itself configuration, the "conf"
attribute has unclear semantics. That dict has been renamed to
"attributes", and they are the attributes of the configuration -- as
distinct from the environment created by the configuration object.
Although the environment could be folded together with the attributes,
we do not do so to avoid potential naming conflicts, and to simplify
the string templating actions.
Added settings test for user homedir inspection

This includes a few fixes and cleanup to the settings module and its
testsuite which arose naturally in the course of adding this test.
settings tests for environment variable overloads

This includes files to support these tests, and several minor fixes to
bugs revealed by the tests.
Added environment variable checks to settings tests.