Move only: extract WriteChainState and UpdatedTip from SetBestChain.
Prepare block connection logic for headers-first.

This changes the block processing logic from "try to atomically switch
to a new block" to a continuous "(dis)connect a block, aiming for the
assumed best chain".

This means the smallest atomic operations on the chainstate become
individual block connections or disconnections, instead of entire
reorganizations. It may mean that we try to reorganize to one block,
fail, and rereorganize again to the old block. This is slower, but
doesn't require unbounded RAM.

It also means that a ConnectBlock which fails may be no longer called
from the ProcessBlock which knows which node sent it. To deal with that,
a mapBlockSource is kept, and invalid blocks cause asynchronous "reject"
messages and banning (if necessary).
qt: Transifex pull before 0.9.0rc1
qt: Fix Windows/Darwin executable metadata

.rc's should be linked into the executable directly,
not through a helper library.
Bump version numbers for 0.9.0rc1 release
qt: Add closing newline to help message

`bitcoin-qt --help` was missing a final newline.
Re-add BTC/KB in help message for `settxfee`

Commit a22eed6a got reverted in a RPC documentation update, redo it.
Merge pull request #3370 from sipa/headersfirst3

Prepare block connection logic for headers-first