Add WebSocket plugin
Resolves #575. WebSocket plugin allows Polywrap Client to interact with WebSocket servers.
Every incoming WebSocket message can be passed to a callback function in another wrapper. Use addCallback to start passing messages and removeCallback to stop. The callback function is expected to have a parameter data, i.e. foo(data: string).
Incoming WebSocket messages can also be stored in the plugin and retrieved as an array later. Use addCache to start caching messages and removeCache to stop. Use receive to get an array of cached messages and empty the cache. Optionally, wait for a timeout, or a minimum number of cached messages before retrieving the array.
See the README.md and src/tests/e2e/e2e.spec.ts for more info.