Use Node's EventEmitter

This is very much a work in progress and isn't intended to be merged as-is. I'd just like to get the concept out here to see what we think of it. Here's a high-level summary:

`SIP.EventEmitter` now has the same API as [Node's EventEmitter](http://nodejs.org/api/events.html). `initEvents` and `initMoreEvents` are also defined, but they simply add a listener that uses the emitter's `logger` (no longer provided by `EventEmitter`, by the way) to log out a message when the event is emitted. The notion of an invalid event is no longer enforced.
Just tracked down and read the commit message.  It's...okay.  Ideally it would be explicitly defined whether or not a Session is supposed to have a logger (independent of being a ICC or ISC).  Having to add it in the tests seems not great.

That said, that sort of change is likely to be picked up when we tackle dependencies further, and I'm fine with this for now.