Refactored Session

Use the request call_id property

Fix typo

Put MediaSession into Session

Delete Session 'connecting' and Message 'sending' redundant events

Add custom empty 'data' object to Message

Rename Session by RTCSession and MediaSession by RTCMediaHandler

Update the RTCSession LOG_PREFIX

Add dialog error handling

Renamed Session.js by RTCSession.js

Delete redundant line

Add some extra comments

Do not delegate on Dialog the firing of the Session 'failed' event on Dialog error

SIP message originating a 'failure' event in RTCSession can be a request or a response. Changed event data 'request' property by 'message'

Do not RTCSession 'failed' event before firing UA 'newRTCSession' event

Code clean.

- Put RTCSession.sendInitialRequest logic into RTCsession.connect
- Clean code in RTCSession.receiveResponse

Put RTCSession cancel and reject logic into terminate method

Put RTCSession createEarlyDialog and createConfirmedDialog logic into a single createDialog method

Delete RTCSession terminateEarlyDialogs and terminateConfirmedDialog methods.

- Insert logic in RTCSession.close method

Move the logic of RTCSession timers to the corresponding place in the code...

 ... instead of defining a separate function for each timer logic
 - Also put all RTCSession timers into a new RTCSession.timers object. Thanks @saghul

Enhance RTCSession.RequestSender class

Fix some typos

Take out RTCSession internal classes from RTCSession.js file

- Make use of grunt-include-replace npm (grunt upgrade to 0.4 was required)
- Add internal classes into src/RTCSession/ directory