nose: fix test result and honor setup hooks

This small but powerful change does two things.  First, it passes
the result object to testcases, so failures/successes/etc. are
captured in a way that the calling framework knows about.  Second
instead of calling the testcase's run() method directly, it calls
the test object itself.  This is what the nose framework expects
and allows any defined __call__() methods in the object hierarchy
to perform setup/teardown if they desire.