Add global socket timeout class

Similar to the API key class, this allows for setting the default
timeout for methods using sockets. This can be overridden by passing a
timeout to the relevant class constructor.

Resolves #12