Timeouts

Add http timeout support through the client. This will allow users not to end up with an interpreter stuck in a watch or lock operation. Addresses #20