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

Fix typo
Merge branch 'refactored_session'
remove 'views' argument from UA.call()
Add missing devDependencies in package.json
Add grunt-cli to devDependencies list in package.json
Specify the minimum 'node' version required.

- >= 0.8 is needed for grunt 0.4
Make RTCSession local_identity and remote_identity NameAddrHeader instances
Don't validate configuration.password against SIP URI password BNF grammar (fix #74).
Use more grunt 0.4 features.
Remove head.js and tail.js files.
Make JsSIP.version and JsSIP.name read-only attributes instead of functions.
Include installation of 'grunt-cli' in BUILDING.md
Update BUILDING, CHANGELOG and README files
Make README example more readable. Thanks @saghul
Typo in README file
Set version 0.3.1-devel in master.
Replace s/userMediaTypes/mediaConstraints/g in README example.
Typo in README.md
Add nonull=true in grunt-contrib-concat to warn about possible mising/unreadable files
(see https://github.com/gruntjs/grunt-contrib-concat/issues/15).
remove customizations, big merge ahead :)
Merge remote-tracking branch 'upstream/master'

Conflicts:
	src/MediaSession.js
	src/Session.js
 * span grant to use sound dev to an entire "session"

 that way users don't need to re-grant permission to
 use microphone. just one time per web session.