Updated to use Guzzle 5, include configurable timeouts, etc.