Return fault code and description on RPC service errors
Instead of just raising an Exception which is serialized to the client as 'The request could not be completed', we now always raise a Fault which is serialized as a SOAP Fault object or as a JSON object with faultcode and faultstring properties (and HTTP 500 response status).
This fixes Trac #41.