Refactoring, pulled out some of the resume/suspend stuff
Refactored publish method
Added TODO for adding req.joinModel(Foo), req.joinInstances(foos), req.leaveInstances(foos), and req.leaveModel(Foo).  Replaced 'my' with 'self' for consistency.