Win32: use a more modern API call in FileCommit()

- this seems to be a more recent API call and also supports e.g. SMB3,
  ReFS, which is not guaranteed for commit_()
- link to MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364439%28v=vs.85%29.aspx
Don't store or send side-chain blocks lower than last checkpoint.
log parameter interactions to debug.log
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).
Re-add newline to error() messages

As reported by @Subo1978, error messages don't have a trailing newline
anymore after commit b77dfdc9. Add back this newline.
Merge pull request #3450

4c0b2cd Win32: use a more modern API call in FileCommit() (Philip Kaufmann)
Mention `*` value for account in documentation for `getbalance` RPC
[Qt] extend validate line edit and btc address validator

- remove btc address length from address validator
- add an optional btc address check in validated line edit that defaults
  to off and is used in GUIUtil::setupAddressWidget()
- an isAcceptable() check is added to validated line edit on focus out
  which only kicks in, when a validator is used with that widget
- remove an isAcceptable() check from sendcoinsentry.cpp
- remove obsolete attributes from ui files, which are set by calling
  GUIUtil::setupAddressWidget()
- move some more things to GUIUtil::setupAddressWidget() and remove them
  from normal code e.g. placeholder text
Merge pull request #3597

3cf1f43 Mention `*` value for account in documentation for `getbalance` RPC (Wladimir J. van der Laan)
[Qt] minor receive tab improvements
qt: Fix tab order in send and receive tab
Merge pull request #3598

69d03bc qt: Fix tab order in send and receive tab (Wladimir J. van der Laan)
79fb055 [Qt] minor receive tab improvements (Cozz Lovan)
Fix `getaddednodeinfo` RPC call with dns=false

The getaddednodeinfo RPC call, when invoked with the dns flag set to
false, returns a malformed JSON object with duplicate keys.

Change this to return an array of objects with one key as
shown in the help message.

Fixes #3581.
Merge pull request #3586

4412c5a Fix `getaddednodeinfo` RPC call with dns=false (Wladimir J. van der Laan)
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.