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
qt: allow `walletpassphrase` in debug console without -server

Currently it is only possible to use `walletpassphrase` to unlock the
wallet when bitcoin is started in server mode.

Almost everything that manipulates the wallet in the RPC console
needs the wallet to be unlocked and is thus unusable without -server.

This is pretty unintuitive to me, and I'm sure it's even more confusing
to users.

Solve this with a very minimal change: by making the GUI start a
dummy RPC thread just to handle timeouts.
Don't store or send side-chain blocks lower than last checkpoint.
gitian: Windows 64 bit support

- Build a 64 bit version of all dependencies
- Show 32/64 bit version in "About..." for x86
- Export 64-bit .exes and installer from gitian build
Adapt Windows installer for 64 bit
build: Add bitcoin-cli.exe to installer
build: Package docs/ and don't package source.

No-one uses the installer then builds from source.
Closes #2819.
build: Change package name to Bitcoin Core

Affects the name of the package as shown in installers
and such.

Also rebrand the windows installer.
Merge pull request #3560

fe14e8d build: Change package name to Bitcoin Core (Wladimir J. van der Laan)
6c980c7 build: Package docs/ and don't package source. (Wladimir J. van der Laan)
39db27c build: Add bitcoin-cli.exe to installer (Wladimir J. van der Laan)
2f87b38 Adapt Windows installer for 64 bit (Wladimir J. van der Laan)
f622232 gitian: Windows 64 bit support (Wladimir J. van der Laan)
Merge pull request #3553

a8db31c qt: allow `walletpassphrase` in debug console without -server (Wladimir J. van der Laan)
qt: Fix richtext detection hang issue on very old Qt versions

Alternative implementation. Thanks to @awoland for the original.
Fixes #3486.
Merge pull request #3577

17b409b qt: Fix richtext detection hang issue on very old Qt versions (Wladimir J. van der Laan)
build: fix typo in configure help message

--with-qt-libdir etc, not --with-gui-libdir.
The typo was introduced in a9dbcf036bc866c2e413b1d068541e35eafdfcd0.
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