auto-unstub on context teardown

This adds a new helper method, `unstub!`.  This method unstubs any
existing stubs.  Then this adds calling that method automatically
on any context teardown.

The effect is that Assert will auto-unstub any stubs on test teardown.
This means devs don't have to remember to do it and it minimizes
the opportunity for memory leaks due to stubbing.

@jcredding ready for review.