Added some `@no_dry_run` tests.

This involved a bit of refactoring - I am of the opinion we should be
doing more of this in our test suite; its easier to look at code like
this and have a clear idea of what it's testing, particularly when we
have a lot of tests.

I ended up taking things out of the class, mostly because python's
scoping rules are such that the test cases themselves would have had to
have been (e.g.):

    def test_dry_run(self):
        TestNoDryRun._dry(TestNoDryRun._function)

...which hurts my eyes. In any case, for right now there aren't any
other test classes in the file.
Merge remote-tracking branch 'moc/devel' into dry_run_tests

Conflicts:
	tests/unit/dev_support.py
Merge pull request #161 from zenhack/dry_run_tests

Added some `@no_dry_run` tests.