Add offline transaction signing for usage on an airgapped machine.

Sample code:
```
from pycoin.tx.offline import generate_offline_data, sign_transaction_offline, confirm_tx

unspent_outputs = generate_offline_data(
    source_addresses=['SOURCE_ADDRESS_HERE', ])

signed_tx = sign_transaction_offline(
    unspent_outputs=unspent_outputs,
    wifs=['SOURCE_WIF_HERE', ],
    coins_to=((190000, 'DESTINATION_ADDRESS_HERE'),),
    expected_fee=10000)
```

I haven't tested this very much, I mostly just translated existing code so that it'd be easy to pass data to an offline machine running pycoin. It seems to be working but this should be tested thoroughly before use in production.

Feedback/changes would be much appreciated.