Clean up public interface of class JsonRpc

These changes will require some small changes to conveyor.

* Remove parent class (JsonRpcStream), didn't add anything useful

* Renamed the "feed" methods to "feedInput" for better clarity

* Use unique_ptr for the private class pointer

* Use C++11-style deletion for the assignment operator and copy
  constructor

* Add class and method comments

* Style cleanup
Change output interface to the new JsonRcpOutputStream interface

JsonRcpOutputStream is an abstract class with a single "send"
method. It should be subclassed to send data over a socket or
equivalent.

This replaces JsonRpcStream as the type of the 'output' parameter
given to JsonRpc's constructor. There's not much functional
difference, just a little easier to read and fewer methods to
override.

This change requires some minor modifications in conveyor.