Change SocksToRtc to have a freedom-compatible interface.

This change also adds a manifest.json for SocksToRtc, but this
manifest is not yet used anywhere or verified by the build.
Tagged unions are what we want (which we mimic with optional types for alternative possible properties of an object, and assume only one of them is present at a time; support for this is also being discussed). Ordinary unions are really for cases where someone has written a badly defined interface and you have to live with it. 

We already do use a tagged union in the `WebRtc.SignallingMessage` type for the different kinds of signaling messages that are possible. This helps make explicit when you access a particular (sub)type of a tagged object. 

As per our style guide, use of `any` is strongly discouraged as it gives you no type-safety and results in lots of debugging. Of course you could write tests for each type-check condition, but instead we use the type system for this kind of basic stuff (there was a time where we had a bunch of type-checking tests and it was really gross), and so we can focus on writing tests for the stuff that is more important and harder to be done automatically. 

Suggested fix here is that you create a tagged union type and make the signal have a well-defined interface - avoiding I hope laborious future debugging (I've seen several people debug type bugs on this object previously, and would love to avoid it again). 

The current use of lenient rules is very bad and we have an issue to fix it (https://github.com/uProxy/uproxy/issues/681), and I will make that happen soon. Else we're shooting outself in the foot again and I don't want to see that happen again! :) 

Make sense? I think it might be reasonable to do that as a separate pull request as it looks like the interface definition has already been broken, so it is indeed an authogonal issue to this pull request. 

Sound good?