SpecClientContext, SpecDialogs: split SIP messages into separate lines
SpecServerContext/SpecSession/SpecSubscription: split SIP msgs by line

(see previous commit)
ServerContext: dedupe progress/accept/reject/reply methods
dedupe REASON_PHRASE fallback logic into SIP.Utils.getReasonPhrase()
dedupe Status-Line generation into SIP.Utils.buildStatusLine()
dedupe reason-value generation into SIP.Utils.getReasonHeaderValue()
dedupe cancel code-check/reason-build into SIP.Utils.getCancelReason()
tests use promiscuous 0.6.0 for Promise

curl https://raw.githubusercontent.com/RubenVerborgh/promiscuous/dist/promiscuous-browser.js > test/polyfills/promiscuous-browser.js
WebRTC.getUserMedia returns a Promise if only constraints are given
MediaStreamManager#acquire takes mediaHint, returns Promise
MediaStreamManager#acquire: fix indentation in previous commit
WebRTC.MediaHandler#getDescription takes mediaHint, returns Promise
WebRTC.MediaHandler#setDescription takes sdp, returns Promise
Session, WebRTC.MediaStreamManager: Put '.then(' on own line
WebRTC.MediaHandler#addStream returns a promise
WebRTC.MediaHandler#getDescription: define streamAdditionSucceeded later
WebRTC.MediaHandler#getDescription: fix indentation of previous commit
Session#sendReinvite: use promise chain to mangle body
Session: promise handlers have names instead of tiny comments
Session#receiveReinvite: dedupe error handling a little