FCPPluginClient.sendSynchronous(): Return a reply with success==false
instead of throwing

This is needed because:
- The reply message we received from the remote side contains more than
just success==false, in particular an errorCode and errorMessage. This
commit adds JavaDoc which mentions that. It could even contain arbitrary
data in the SimpleFieldSet or Bucket, which wouldn't make sense to stick
into an Exception.
- This code is an API which will be widely used, so we cannot predict
the usage pattern of it. Exceptions are slow, so we shouldn't risk using
them in high frequency.