Make output stream settable

* The output stream is now stored as a weak_ptr

* If a remote method is invoked while the output stream is invalid, an
  exception of the new type JsonRpcInvalidOutputStream is thrown

* If a local method is returning a response while the output stream is
  invalid, the error is silently ignored

* The JsonRpc constructor no longer takes an output stream; initially
  the output stream is invalid

* Added JsonRpc::setOutputStream() to set the output stream

* When the output stream is set, the internal JsonRpcPrivate object is
  deleted and replaced with a new one that copies the previous methods
  but resets everything else

* Added a JsonRpcPrivate destructor that sends failure to all active
  callbacks
finishing a comment
Merge remote-tracking branch 'origin/happy-turtle-00'