FCPPluginClient: Allow send functions to throw IOException and JavaDoc the cases when they will do that
- I think IOException is a good type because it is used all over java sockets, streams and file IO.
- The reason why also the asynchronous send functions need to be able to throws is that under certain conditions it will be possible to detect immediately that the connection is broken and we cannot even enqueue the message for sending: When we are trying to send to a server plugin which has been unloaded, it is definitely known by the WeakReference being null. With it being null, it wouldn't even be possible to pretend that the connection is alive by shoving it into a queue and forgetting about it, because there is no queue to put it to.