Peer connection renegotiation

This PR adds support to create offer/answers based on the need of renegotiation. This requires browser support of the onnegotiationneeded event. Only Chrome does have this in a somewhat functioning state at the time of writing. Workarounds for Firefox have been added. Though when doing renegotiation this breaks Chrome/Firefox interop. For this reason it is disabled by default. The PR should still be merged as these changes also bring plenty optimizations regarding stream handling and multi stream support.
Line is too long.