src/: Split index.js/environment.js into Node/browser versions.

index.js and index_browser.js export SIP.js with a corresponding environment

environment_browser.js:
  Use global variables instead of requiring modules. This undoes the effects of
  the following commits, removing ~1KB from the bundle size:
    51003e3: Timers: require('timers') instead of directly using global
    8baf989: LoggerFactory: require('console') instead of directly using global
    b69fef8: Utils.Promise = global.Promise || require('promiscuous');

environment.js:
  Export a Node-compatible environment by extending the browser environment
  with the modules listed above.

Gruntfile.js: Tests polyfill Promise using promiscuous-browser.js
(Node) Use 'ws' module for WebSocket