Add test for suite level patch restoration.

Add test to check that when a test value is patched in
it's value is restored to the previous value on test
tear down.

https://bugs.launchpad.net/juju-core/+bug/1308101
I suggest that we change AddCleanup itself to add the function to
the appropriate cleanup list, and delete AddSuiteCleanup entirely.

I can't currently think of a good use case for adding a suite cleanup
at test level (all current uses are within SetUpSuite).

This will make the whole thing less error-prone, with less code here
and will fix any existing cases that call AddCleanup within SetUpSuite.