progress now only emits on 101-199 (not 100)
progress switched back, for all provisional responses now
Looser toplabel parsing
Added missing
iceFailed event
Header parsing shouldn't throw exceptions.  Thanks to Balazs Sandor for PR #102
Refactored PR #101.  Thanks to Emilio, Ptah, and the LiveNinja team.
Added additional ICE events

Added additional ICE events of disconnected and closed
Fixed spacing to match repo
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
Transport: require('ws') instead of directly using global.WebSocket

This allows SIP.js to be used in Node without manually setting global.WebSocket
SIP.Utils.Promise = global.Promise || require('promise');

package.json: browserify omits the 'promise' module from the build, so as to
avoid adding unnecessary code.

Gruntfile.js: jasmine config provides Promise shim to PhantomJS