Session#receiveReinvite: flatten promise chain with single '.catch'
Session#receiveReinvite: fail fast if request has no body
Session#receiveReinvite: reduce variable scope
Session#receiveInviteResponse 1xx case: flatten promise chain w/ 1 catch
Session#receiveInviteResponse 2xx case: flatten promise chain w/ 1 catch
test/spec/MediaStreamManager.js: fix indentation
WebRTC.MediaHandler#getDescription: call #render() after stream is added

fixes #92
Moved wsServerReconnectionTimeout/Max Reconnection moved from internal to configurable variables; credit to SD
WebRTC.MediaHandler#createOfferOrAnswer: var pc = self.peerConnection;
WebRTC.MediaHandler#createOfferOrAnswer: promisify setting local sdp
define Utils.defer()
WebRTC.MediaHandler#createOfferOrAnswer: promisify onSetLocalDescriptionSuccess
WebRTC.MediaHandler#createOfferOrAnswer: define handlers in .then()
WebRTC.MediaHandler#createOfferOrAnswer: return a promise
WebRTC.MediaHandler: use a deferred for onIceCompleted

WebRTC.MediaHandler: emit 'iceComplete' outside of createOfferOrAnswer
WebRTC.MediaStreamManager#acquire: flatten code by using a deferred
(Non)InviteClientTransaction#receiveResponse: return a promise
(Non)InviteClientTransaction#receiveResponse: use defer() to return once
Utils#defer: rename var 'o' to 'deferred'
UA configuration: add 'authenticationFactory' parameter

This works like the 'mediaHandlerFactory' parameter, enabling custom
authentication schemes as described here:

  https://groups.google.com/forum/#!msg/sip_js/PWm7_WqdsSQ/TT4o8ZTySwAJ