use mock.patch to control patch state; improve tests

assign: @amygdalama 

Currently we've got a bunch of hacky custom logic to handle patching and unpatching. . .that didn't even work for `__init__`, haha (exercised by [this test](https://github.com/venmo/btnamespace/compare/fix_unpatching?expand=1#diff-7eb47fc18d4a6196f0940784484a5bf3R34)).

This PR drops our custom stuff in favor of mock.patch.
You might consider testing that `patched_method` is an instance of `Mock` and that `original_method` isn't.