Fixed RPC error reporting so it displays the additionalDetails sent from the server

This was a surprisingly deep-cutting change: RPC error handling used to go through 3
times as many callbacks as it does now (and it ended up displaying a useless client-
side stack trace in the error dialog)

I also eliminated the transportToBusCallback in favour of a new public sendLocal()
method that does what it says. Transports now deliver messages into the bus itself,
which simplifies all message deliveries--not just errors.
Merge branch '2.4'