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.
Unit test fixes for AssertLockHeld / -DDEBUG_LOCKORDER

Unit tests would fail if compiled with -DDEBUG_LOCKORDER (AssertLockHeld()
would fail; AssertLockHeld() relies on the DEBUG_LOCKORDER code to keep
track of locks held).

Fixed by LOCK'ing the wallet mutex in the unit tests that manipulate the
wallet.
Merge pull request #3578 from gavinandresen/unittest_debuglockorder

Unit test fixes for AssertLockHeld / -DDEBUG_LOCKORDER
Updated fallback seed nodes from sipa's DNS seeds
[Qt] harmonize strings used when exporting in addressbookpage
Merge pull request #3579

f3005c8 [Qt] harmonize strings used when exporting in addressbookpage (Philip Kaufmann)
qt: Translation update

Update English .ts file from source as well as pull changes from transifex
to current translation.
Merge pull request #2342

665bdd3 Fix off-by-one errors in use of IsFinalTx() (Peter Todd)
log parameter interactions to debug.log
[Qt] Fix coin control labels update
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)