Improvements to groupEmitter and to framework event handling

- groupEmitter now tracks the actual events rather than just counting the number of events fired
- The events object has been split from the params object and renamed "emitters" ("events" was a terrible name for obvious reasons). The emitters object is now passed separately into the controller and should be passed separately into any function calls down the line.
- Recommended practice is to pass copies of params and emitters using chode.functions.copy(params) rather than passing the originals. Subsequent modifications to params were causing problems upstream. The server module passes copies to the controller now, and copies should be passed to the model. Only the index pattern works currently.