Decouple the json timeout from the actual error code.

Please test this before merging as I couldn't test it properly. This decouples a Json timeout from the actual error code. As we can't know if there happened an error, we now bail out on the outer error code (Error on Json level as opposed to guh-core level) which seems more suited in any case.

Fixes #50