Make sibling Suites have separate contexts

The main context in mocha is currently shared by all suites.  

This change makes it so that each suite can add values to it's own context without polluting the shared global context.   

This allows a layer of automatic cleanup to occur between test suites.  Making `after` mostly unnecessary if you are using the shared context to store setup rather than using the closure.