Added optional media constraints for WebRTC

* Added optional constraints used by DTLS/SCTP data channels in WebRTC.
* Added TODOs for things that can be done when/if typescript is improved with links in case people want typescript to be better and want to vote on the issue.
* Removed unused IceState
* Added moz specific prefixes
* Fixed broken use of enum for things that are actually strings and added a TypeScript issue for the fix
* Added comments with WebIDL spec for enums
* Added RTCMessageEvent for data channels
* Support send with ArrayBufferView
* MediaConstraints now has RTC prefix to be consistent with the other interfaces.