Extend internal API to embed arbitrary payload data in assertion (WebRTC)

The internal API is extended to allow the signing of arbitrary data (`payload`) to be included in the assertion. This is done to support the signing of a WebRTC PeerConnection **fingerprint** (the `payload`), used in the PeerConnection Identity module of WebRTC as specified at: http://dev.w3.org/2011/webrtc/editor/webrtc.html#identity

The assertions given from internal API will be included in the `offer` and `answer` SDP objects returned from `RTCPeerConnection.createOffer()` and `RTCPeerConnection.createAnswer()`

These changes are necessary to ensure BrowserID supports the WebRTC Identity specification to be landed in future web browsers.

/cc @warner @shane-tomlinson