EventEmitter: inherit from Node's EventEmitter

* implement #off in terms of #removeListener and #removeAllListeners

* NOTE: #on, #once and #off do NOT take third arguments (bindTarget)

  listeners should be explicitly bound to their objects before passing to
  EventEmitter methods

* NOTE: #setMaxListeners works like Node's, does NOT prevent extra listeners

* add logging to #emit

* remove all other methods and their tests

Supporting changes:

* test/spec/SpecSession.js: define .logger on the constructed Session

  This prevents tests from failing
  due to an artificially constructed Session's logger being undefined
  since the Session no longer has a logger by way of being an EventEmitter

* src/Session.js: fix the following methods to correctly return `this`:

  - failed
  - rejected
  - canceled
  - accepted
  - terminated
  - connecting

* EventEmitter: remove checkListener method

  The rest of SIP.js uses:

    emitter.listeners(eventName).length

  instead of:

    emitter.checkListener(eventName)