Overload Unittest_TestCase to make sure that we only call teardown
when setup was called - this should catch cases where we forget to
call parent::setup in our tests's setup.  It doesn't (yet) catch the
case where we forget to call teardown.
Switch over to using @expectedException annotations on tests that we
expect to throw an exception, and then delete a bunch of boilerplate
code.  Not all exception-throwing tests are applicable for this since
in some cases we expect to throw multiple exceptions or take special
action on the exception.
Orphan Albums_Controller_Test and Photos_Controller_Test since their corresponding
controllers went away.  We'll need to rescue the tests out of here and put them
in the right place.