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
Typesafe strprintf/error/LogPrint functions

Switch to tinyformat-based formatting.

Tinyformat is a typesafe drop-in replacement for C99 printf functions:
https://github.com/c42f/tinyformat
Remove redundant .c_str()s

After the tinyformat switch sprintf() family functions support passing
actual std::string objects.

Remove unnecessary c_str calls (236 of them) in logging and formatting.
Merge pull request #3549

7d9d134 Remove redundant .c_str()s (Wladimir J. van der Laan)
b77dfdc Typesafe strprintf/error/LogPrint functions (Wladimir J. van der Laan)
ui: Clarify help messages for 'message' fields

Add or amend tooltips to clarify what the message is for and that it
doesn't go over the network.
Merge pull request #3571

57feb1b ui: Clarify help messages for 'message' fields (Wladimir J. van der Laan)
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
Fix off-by-one errors in use of IsFinalTx()

Previously CreateNewBlock() didn't take into account the fact that
IsFinalTx() without any arguments tests if the transaction is considered
final in the *current* block, when both those functions really needed to
know if the transaction would be final in the *next* block.

Additionally the UI had a similar misunderstanding.

Also adds some basic tests to check that CreateNewBlock() is in fact
mining nLockTime-using transactions correctly.

Thanks to Wladimir J. van der Laan for rebase.
[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()