Change 500 reason phrase to "Internal Server Error"

See https://github.com/onsip/SIP.js/issues/32#issuecomment-45348197
Session.js: InviteServerContext - add receiveNonInviteResponse

This allows the InviteServerContext to be able to send in-dialog MESSAGE
requests. See
https://groups.google.com/forum/#!msg/sip_js/H27XRsTnBhA/-XaGf_bbjJAJ
Use require() and browserify to organize dependencies and compilation.
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
Grammar module depends on SIP
One class per file. Each file exports the class, and doesn't set SIP.*
Let modules require() their own dependencies.

- LoggerFactory.js require()s Logger.js
- Session.js, Invite*Context.js require() Session/Constants.js
- Session.js require()s Session/DTMF.js
- WebRTC.js require()s WebRTC/Media{Handler,StreamManager}.js
- Incoming{Request,Response}.js require() IncomingMessage.js
- Dialogs.js require()s Dialog/RequestSender.js
mv {Dialogs,Session,WebRTC}.js $1/index.js, omit require() ".js" suffix
Move (set/clear)(Timeout/Interval) into Timers module.
More dependency cleanup:

- Dialog module does not depend on window
- Transport module depends on WebSocket, not window
- LoggerFactory module depends on window.console, not window
- Hacks module does not depend on window
- SIP.js: pass window only to modules that depend on it