FCPPluginReply: Consume & serialize the new FCPPluginMessage.errorCode and errorMessage fields; Improve constructor layout
- We remove the assert()s and instead consume a FCPPluginMessage to ensure that the assert()s of FCPPluginMessage get executed instead. This causes the legacy constructor to be exactly the same as the one before the new plugin FCP API was implemented. This will keep the legacy stuff working the same way for nodes which have assert() enabled. We don't enable it by default, but some developers might enable it for their production nodes. Also, removing the assert()s of course reduces code duplication as we have the same ones in FCPPluginMessage already.
- This also adapts the callers to use the new constructor signature