`suite` DSL method on context classes

This adds a `suite` DSL method to the context class.  Use this method
to inject custom suite objects.  The method defaults to `Assert.suite`
if no custom suite has been specified and honors its superclass suite.

The main reason for doing this is that has no effect on the external
API but allows for much easier and robust testing of contexts  and
their suite-related concerns without impacting live code.

Closes #163 

@jcredding ready for review.  No behavior changes - just test cleanups and reduced occurrence of `Assert.suite`.