FCPServer: Move all construction and registration of FCPPluginClient objects to this class
- FCPServer is a nice place to deal with handing out clients as a server conceptually manages clients
- This allows us to get rid of the mirror of FCPPluginClientTracker.registerPluginClient() because the server now does registration on its own
- It also allows us to get rid of the huge comment which explains thread safety at FCPConnectionHandler: Since the server will only hand out clients by ID, they cannot be obtained from the server until the function at FCPConnectionHandler has returned the client, which it won't until it is finished with storing it at its own table - and then both tables are coherent.
FCPPluginClient: Make constructor interface functions more symmetric
- Take PluginManager as parameter instead of obtaining it via indirections so the two constructor functions are symmetric
- Also rename parameter pluginManager in the one constructor function to serverPluginManager for symmetry between the parameters
FCPPluginClient: JavaDoc
- Finish and improve class level JavaDoc of code paths of sending messages
- Don't @link to self, this is confusing.