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
Updated fallback seed nodes from sipa's DNS seeds
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).
build: use -mwindows for gui targets when linking with mingw
use english for all reason strings in IsStandardTx()
Merge pull request #3589 from Diapolo/english-reason

use english for all reason strings in IsStandardTx()
Merge pull request #3591

6986861 build: use -mwindows for gui targets when linking with mingw (Cory Fields)
Add check for valid keys in `importprivkey`

The base58 armoring was checked, but not the resulting private key,
which could be out of range. Fix this by adding a check.
[Qt] fix bitcoin: URI strings (spelling fixes)
Merge pull request #3594

d7aa1ec [Qt] fix bitcoin: URI strings (spelling fixes) (Philip Kaufmann)
Merge pull request #3590

edd735d [Qt] Fix coin control labels update (Cozz Lovan)
Merge pull request #3593

c7f9332 Add check for valid keys in `importprivkey` (Wladimir J. van der Laan)
Merge pull request #3582

e5aadb2 Updated fallback seed nodes from sipa's DNS seeds (Gavin Andresen)
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)