Issue title: sendTransaction socket.timeout
 Issue body: * Version: latest
* Python: 2.7
* OS: linux


### What was wrong?
I'm trying to send a transaction from an account to `Ropsten` another but I got error `socket timeout`

```
Traceback (most recent call last):
  File "rpc-client.py", line 11, in <module>
    print web3rpc.eth.sendTransaction({'to': john, 'from': web3rpc.eth.coinbase, 'value': 12345})
  File "/usr/local/lib/python2.7/dist-packages/web3/eth.py", line 243, in sendTransaction
    [formatters.input_transaction_formatter(self, formatted_transaction)],
  File "/usr/local/lib/python2.7/dist-packages/web3/providers/manager.py", line 37, in request_blocking
    response_raw = self.provider.make_request(method, params)
  File "/usr/local/lib/python2.7/dist-packages/web3/providers/rpc.py", line 161, in make_request
    response = self.client.post(self.path, body=request_data)
  File "/usr/local/lib/python2.7/dist-packages/geventhttpclient/client.py", line 218, in post
    return self.request(METHOD_POST, request_uri, body=body, headers=headers)
  File "/usr/local/lib/python2.7/dist-packages/geventhttpclient/client.py", line 200, in request
    block_size=self.block_size, method=method.upper(), headers_type=self.headers_type)
  File "/usr/local/lib/python2.7/dist-packages/geventhttpclient/response.py", line 298, in __init__
    super(HTTPSocketPoolResponse, self).__init__(sock, **kw)
  File "/usr/local/lib/python2.7/dist-packages/geventhttpclient/response.py", line 170, in __init__
    self._read_headers()
  File "/usr/local/lib/python2.7/dist-packages/geventhttpclient/response.py", line 190, in _read_headers
    data = self._sock.recv(self.block_size)
  File "/usr/local/lib/python2.7/dist-packages/gevent/_socket2.py", line 280, in recv
    self._wait(self._read_event)
  File "/usr/local/lib/python2.7/dist-packages/gevent/_socket2.py", line 179, in _wait
    self.hub.wait(watcher)
  File "/usr/local/lib/python2.7/dist-packages/gevent/hub.py", line 630, in wait
    result = waiter.get()
  File "/usr/local/lib/python2.7/dist-packages/gevent/hub.py", line 878, in get
    return self.hub.switch()
  File "/usr/local/lib/python2.7/dist-packages/gevent/hub.py", line 609, in switch
    return greenlet.switch(self)
socket.timeout: timed out 
```

Here is my python script (I'm connected to my server, assuming my IP is : 116.69.203.115) :  

```
from web3 import Web3, KeepAliveRPCProvider

web3rpc = Web3(KeepAliveRPCProvider())
web3rpc = Web3(KeepAliveRPCProvider(host="116.69.203.115", port="8545"))

john = '0xe7bcd3b454c18313fe88d679eaf41251a58793dd'

print web3rpc.eth.sendTransaction({'to': john, 'from': web3rpc.eth.coinbase, 'value': 12345})
```
I thought it was because I'm using the `Ropsten testnet` and I have to use `TestRPCProvider `  instead of `KeepAliveRPCProvider`.

But I need to install `eth-testrpc` to use `TestRPCProvider`. But when I'm trying to install `eth-testrpc` I have this error : 

`sudo pip install eth-testrpc`

```
Downloading/unpacking eth-testrpc
  Downloading eth-testrpc-0.8.7.tar.gz
  Running setup.py (path:/tmp/pip-build-4uoahu/eth-testrpc/setup.py) egg_info for package eth-testrpc
    
    warning: no files found matching 'VERSION'
Requirement already satisfied (use --upgrade to upgrade): gevent>=1.1.2 in /usr/local/lib/python2.7/dist-packages (from eth-testrpc)
Downloading/unpacking Werkzeug>=0.11.10 (from eth-testrpc)
  Downloading Werkzeug-0.11.11-py2.py3-none-any.whl (306kB): 306kB downloaded
Downloading/unpacking click>=6.6 (from eth-testrpc)
  Downloading click-6.6-py2.py3-none-any.whl (71kB): 71kB downloaded
Downloading/unpacking ethereum-tester-client>=1.2.4 (from eth-testrpc)
  Downloading ethereum-tester-client-1.2.5.tar.gz
  Running setup.py (path:/tmp/pip-build-4uoahu/ethereum-tester-client/setup.py) egg_info for package ethereum-tester-client
    
    file eth_tester-client.py (for module eth_tester-client) not found
    warning: no files found matching 'VERSION'
    warning: no previously-included files matching '__pycache__' found under directory '*'
    warning: no previously-included files matching '*.py[co]' found under directory '*'
Downloading/unpacking ethereum>=1.5.2 (from eth-testrpc)
  Downloading ethereum-1.6.0.tar.gz (127kB): 127kB downloaded
  Running setup.py (path:/tmp/pip-build-4uoahu/ethereum/setup.py) egg_info for package ethereum
    your setuptools is too old (<12)
    setuptools_scm functionality is degraded
    zip_safe flag not set; analyzing archive contents...
    
    Installed /tmp/pip-build-4uoahu/ethereum/pytest_runner-2.7-py2.7.egg
    
Downloading/unpacking json-rpc>=1.10.3 (from eth-testrpc)
  Downloading json_rpc-1.10.3-py2.py3-none-any.whl
Requirement already satisfied (use --upgrade to upgrade): rlp>=0.4.4 in /usr/local/lib/python2.7/dist-packages (from eth-testrpc)
Requirement already satisfied (use --upgrade to upgrade): greenlet>=0.4.9 in /usr/local/lib/python2.7/dist-packages (from gevent>=1.1.2->eth-testrpc)
Downloading/unpacking repoze.lru (from ethereum>=1.5.2->eth-testrpc)
  Downloading repoze.lru-0.6.tar.gz
  Running setup.py (path:/tmp/pip-build-4uoahu/repoze.lru/setup.py) egg_info for package repoze.lru
    
Downloading/unpacking PyYAML (from ethereum>=1.5.2->eth-testrpc)
  Downloading PyYAML-3.12.tar.gz (253kB): 253kB downloaded
  Running setup.py (path:/tmp/pip-build-4uoahu/PyYAML/setup.py) egg_info for package PyYAML
    
Requirement already satisfied (use --upgrade to upgrade): pysha3 in /usr/local/lib/python2.7/dist-packages (from ethereum>=1.5.2->eth-testrpc)
Downloading/unpacking pbkdf2 (from ethereum>=1.5.2->eth-testrpc)
  Downloading pbkdf2-1.3.tar.gz
  Running setup.py (path:/tmp/pip-build-4uoahu/pbkdf2/setup.py) egg_info for package pbkdf2
    
Downloading/unpacking bitcoin (from ethereum>=1.5.2->eth-testrpc)
  Downloading bitcoin-1.1.42.tar.gz
  Running setup.py (path:/tmp/pip-build-4uoahu/bitcoin/setup.py) egg_info for package bitcoin
    
Downloading/unpacking pycryptodome>=3.3.1 (from ethereum>=1.5.2->eth-testrpc)
  Downloading pycryptodome-3.4.3.tar.gz (6.5MB): 6.5MB downloaded
  Running setup.py (path:/tmp/pip-build-4uoahu/pycryptodome/setup.py) egg_info for package pycryptodome
    
    warning: no files found matching '.separate_namespace'
Downloading/unpacking secp256k1 (from ethereum>=1.5.2->eth-testrpc)
  Downloading secp256k1-0.13.2.tar.gz (156kB): 156kB downloaded
  Running setup.py (path:/tmp/pip-build-4uoahu/secp256k1/setup.py) egg_info for package secp256k1
    0.28
    your setuptools is too old (<12)
    setuptools_scm functionality is degraded
    zip_safe flag not set; analyzing archive contents...
    
    Installed /tmp/pip-build-4uoahu/secp256k1/pytest_runner-2.6.2-py2.7.egg
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/tmp/pip-build-4uoahu/secp256k1/setup.py", line 295, in <module>
        "Topic 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 Security 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 Cryptography"
      File "/usr/lib/python2.7/distutils/core.py", line 111, in setup
        _setup_distribution = dist = klass(attrs)
      File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 262, in __init__
        self.fetch_build_eggs(attrs['setup_requires'])
      File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 287, in fetch_build_eggs
        replace_conflicting=True,
      File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 631, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 867, in best_match
        dist = working_set.find(req)
      File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 509, in find
        raise VersionConflict(dist, req)
    pkg_resources.VersionConflict: (cffi 0.8.6 (/usr/lib/python2.7/dist-packages), Requirement.parse('cffi>=1.3.0'))
    Complete output from command python setup.py egg_info:
    0.28

your setuptools is too old (<12)

setuptools_scm functionality is degraded

zip_safe flag not set; analyzing archive contents...



Installed /tmp/pip-build-4uoahu/secp256k1/pytest_runner-2.6.2-py2.7.egg

Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/tmp/pip-build-4uoahu/secp256k1/setup.py", line 295, in <module>

    "Topic 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 Security 38d1:d2b4:3d06:83e8:96a5:8c2:893d:aba5 Cryptography"

  File "/usr/lib/python2.7/distutils/core.py", line 111, in setup

    _setup_distribution = dist = klass(attrs)

  File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 262, in __init__

    self.fetch_build_eggs(attrs['setup_requires'])

  File "/usr/lib/python2.7/dist-packages/setuptools/dist.py", line 287, in fetch_build_eggs

    replace_conflicting=True,

  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 631, in resolve

    dist = best[req.key] = env.best_match(req, ws, installer)

  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 867, in best_match

    dist = working_set.find(req)

  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 509, in find

    raise VersionConflict(dist, req)

pkg_resources.VersionConflict: (cffi 0.8.6 (/usr/lib/python2.7/dist-packages), Requirement.parse('cffi>=1.3.0'))

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip-build-4uoahu/secp256k1
Storing debug log for failure in /root/.pip/pip.log
```

Anyone know how can I fix my socket error or the install of eth-testrpc ?

#### Cute Animal Picture

![Cute animal picture]()

 Comments: 
 Comment 0: I fixed my problem with unlock my account : 

```
web3rpc.personal.unlockAccount(web3rpc.eth.coinbase, 'your-passphrase')
```
{'source': 'GithubIssues', 'repo_name_with_owner': 'pipermerriam/web3.py', 'issue_id': 191674396, 'repo_stars': 323.0}