Accept most types of errors when using v1

JSON-RPC v1 accepts any type as error. Previously errors were checked
only against the v2 specification, which requires error to be an object.
Nothing is mentioned of this in the JSON-RPC v1 specification therefore
we now accept any error if the version is 1.

This version will however still not handle errors that are falsy (false,
"", 0 etc) properly.
Added ability for client to recieve notifications

Recieving notifications is only valid for JSON-RPC 1 in which the two
endpoints are more peers than client/server.
Updated tcp client to handle notifications

This is a non-backwards compatible change for JSON-RPC 1 as we now keep
the connection open idefinitly.
We need to do that in order to be able to recieve notifications (as we
cannot predict how many there will be).
Merge branch 'feature/handle_server_notifications'