Gruntfile.js: tell uglify to give ascii output

see https://github.com/onsip/SIP.js/issues/106#issuecomment-57349358

resolves #106
UA#onTransportError: don't try next transport if UA is closed

addresses #63
Gruntfile.js: uglify once, copy twice

This trims roughly 1 second from `grunt build`
Gruntfile.js: remove templates from banner string

Simplify browserify's postBundleCB
src/SIP.js: fix indentation
EventEmitter: inherit from Node's EventEmitter

This reduces code duplication by using a well known/tested module:
  http://nodejs.org/api/events.html

This also preserves most of the public API:
  http://sipjs.com/api/0.6.0/eventEmitter/

See below for more details:

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

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

* #setMaxListeners works like Node's

  - does NOT prevent extra listeners
  - passing 0 allows unlimited listeners

* #emit no longer returns `this`, works like Node's

* #checkListener has been removed

  The rest of SIP.js uses:

    emitter.listeners(eventName).length

  instead of:

    emitter.checkListener(eventName)

* 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 virtue of being an EventEmitter

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

  - failed
  - rejected
  - canceled
  - accepted
  - terminated
  - connecting
EventEmitter#off: add deprecation warning

(elsewhere): don't call #off except for in its tests