JSON RPC 2.0: forbid optional values on requests/responses

Although the spec is not crystal clear about this, it makes sense that the
object members defined by the specification are the only members allowed in
requests/responses.

Issue #7 points out two issues with allowing any other object members, namely:

* spelling mistakes (for instance, "repsonse" instead of "response" -- did you
  spot this one?);
* preventing "out-of-protocol" sneaking of data.

As a bonus, it simplifies the common part of both responses and requests since
we can now skip the test in the common part that an object cannot be a response
and an answer at the same time.