More Code Reorganisation

Moved logging and message functionality to new module `logging.py`.
Added a Checkpoint at mainnet Block 334000
Pylint‐Recommended Cleanup

Files touched: `address.py`, `api.py`, `backend.py`
Pylint‐Recommended Cleanup

Files touched: `check.py`, `config.py`
Updated ChangeLog
Be Able to Run Without a Backend, using `--force`.

If `--force` is used, don’t check that the backend is available, and
when polling for blocks in `blocks.follow()`, if the backend can’t be
reached, just sleep and try again repeatedly.

This is useful for testing purposes, when a complete copy of the
blockchain isn’t available, but a reasonably complete database is.
Two New API Methods; Defined APIError; minor bug

Defined two new API methods:

- `get_tx_info(tx_hex)`
	Returns `(source, destination, btc_amount, fee, data)`
	associated with a hexadecimal‐encoded serialised transaction.

- `unpack(data)`
	Returns a pair of variables: the first is the `message_type_id`
	of the data; the second is a dictionary of the contents of the
	data for the appropriate message type. For instance, passing the
	data from a send transaction will return `0, {'asset': $ASSET,
	'quantity': $QUANTITY}`.

Also, replaced all `raise Exception` statements in `api.py` with `raise
APIError`, which is more meaningful.

Minor bug: two missing `import`s from recent code reorganisations
Multiple python-bitcoinlib Proxies to Backend

We can’t reuse the same `httplib.HTTPConnection` across threads, or we
get `httplib.CannotSendRequest` errors. The solution (for now) is to
just make new connections all over the place. :/
allow manually providing pubkeys for multi‐sig (fixes #413)