Allow listeners to be invoked with more than one argument
Comments for edit reason
Merge pull request #61 from cPu1/master

Allow event handlers to be invoked with a variable no. of arguments
Jasmine 2.0 upgrade, no more random Travis failures (hopefully)
Move (set/clear)(Timeout/Interval) into Timers module.

See https://github.com/joseph-onsip/SIP.js/commit/2510347d7a29c85191c4d78aaf2cbbc6e2261187
Subscription.js/Transactions.js: Bind timer callbacks

This removes unnecessary anonymous functions.
Grammar: remove trailing whitespace
Use require() and browserify to organize dependencies and compilation.

This is a squashed cherry-pick of the first three commits of
https://github.com/onsip/SIP.js/pull/30, plus a small fix to the Timers module,
and slight updates to package.json and .npmignore.

The reason this isn't in separate commits is that the first three didn't work
individually. Squashing them together allows:

- the automated tests to pass
- <script src="dist/sip.js"></script> to work as usual
- a Node.js phone to be tested as follows:

    npm install ws
    node
    WebSocket = require('ws')
    var SIP = require('./.');
    var ua = new SIP.UA({traceSip: true});
    ua.message('welcome@junctionnetworks.com', 'Node says hi!');

For completeness, unsquashed commit messages are listed below:

1: Use require() and browserify to organize dependencies and compilation.

Conflicts:
	Gruntfile.js
	package.json
	src/tail.js

Cherry-picked from:
  https://github.com/joseph-onsip/SIP.js/commit/df33833c9db8ace3e72b38a5e5ecc16c863baff8

2: Clean up module dependencies.

- LoggerFactory does not depend on SIP
- Constants depends only on SIP.name and SIP.version
- Exceptions does not depend on SIP
- Timers does not depend on SIP
- Transport depends on window
- SIP.MediaHandler depends on EventEmitter, not SIP
- WebRTC depends on Utils, not SIP
- Hacks depends on window, not SIP
- DigestAuthentication depends on Utils, not SIP

Conflicts:
	src/Timers.js
	src/WebRTC.js

Cherry-picked from:
  https://github.com/joseph-onsip/SIP.js/commit/9af96e907f839adf926ab757cca2b7923b72ab9a

3: Grammar module depends on SIP

Cherry-picked from:
  https://github.com/joseph-onsip/SIP.js/commit/3e0c165d5f1b687b4bd6a989e03be584fb1e0259

4: Timers module depends on window

See:
  https://github.com/joseph-onsip/SIP.js/commit/2510347d7a29c85191c4d78aaf2cbbc6e2261187#diff-7f75ad1c8b0a978a180c50fe4c649e8bL25

5: package.json: set "main": "src/SIP.js"

Now that our src/ files are modules, we don't have to compile the module before
require()ing it.

6: .npmignore dist/sip*

There's no need for `npm install` to bring in dist/ files. Leave that to bower.
src/SIP.js: remove templates from name/version properties

Instead, require() package.json to learn their proper values. Otherwise, they
would remain templates when require()ing the un-browserify'd module, resulting
in this header being sent:

  User-Agent: <%= pkg.title %>/<%= pkg.version %>
Merge pull request #62 from joseph-onsip/browserify060

Use require() and browserify to organize dependencies and compilation.
fixed asynchronous test stability in Session.js
test/spec/Session.js: simplify async gUM test
src/EventEmitter.js: simplify event listener firing
RFC 3261-compliant Warning header

http://tools.ietf.org/html/rfc3261#section-20.43
The Warning header field is used to carry additional information
about the status of a response.  Warning header field values are sent
with responses and contain a three-digit warning code, host name, and
warning text.

The "warn-text" should be in a natural language that is most likely
to be intelligible to the human user receiving the response.

http://tools.ietf.org/html/rfc3261#page-232
Warning        =  "Warning" HCOLON warning-value *(COMMA warning-value)
warning-value  =  warn-code SP warn-agent SP warn-text
warn-code      =  3DIGIT
warn-agent     =  hostport / pseudonym
                  ;  the name or pseudonym of the server adding
                  ;  the Warning header, for use in debugging

http://tools.ietf.org/html/rfc3261#page-182
399 Miscellaneous warning: The warning text can include arbitrary
    information to be presented to a human user or logged.  A
    system receiving this warning MUST NOT take any automated
    action.
Move jshint options from Grunt to .jshintrc
Convert the remaining tabs to spaces.
Resolve all jshint errors in Gruntfile
Merge pull request #71 from CodeYellowBV/jshint

Move jshint options to .jshintrc and resolve some lint warnings
Merge pull request #69 from CodeYellowBV/warning-header-rfc3261

RFC 3261-compliant Warning header
Bump package files to 0.6.1