Add HMAC-SHA512 to hash
Generalize version bytes
CWallet::TopUpKeyPool() takes optional pool size argument

Also, GetKeyPoolSize() now returns an accurate type, unsigned int.
RPC: keypoolrefill gains optional size parameter
BIP32 derivation implementation
BIP32 test vectors
Detect any sufficiently long fork and add a warning.

Such a fork is defined as being at least 7 blocks long and
having a tip which is within 72 blocks of our best block.
Call the -alertnotify script when we see a long or invalid fork.
Better warning/"alert" messages for large-work forks.
Add unittests for multiple ELSEs in a row

IF ELSE ELSE ENDIF is a valid construct; execution or non-execution
inverts on each ELSE encountered.
Don't use checkpoints and accept nonstd txn on -regtest
Fix multi-block reorg transaction resurrection
exclude CreatePidFile() function on WIN32 as it is unused
cleanup compat.h Windows stuff

- remove an unneded include for mswsock.h as we use winsock2.h anyway
- move typedef u_int SOCKET; into the #ifndef WIN32 part
- remove typedef int socklen_t;  as this is defined in ws2tcpip.h
remove windows.h from crypter.cpp includes

- remove an unneeded windows.h include (comes from allocators.h, which is
  included in crypter.h)
fix possible infinite loop in intro.cpp thread

- it was possible to trigger an infinite loop in FreespaceChecker::check() by
  simply removing the drive letter on Windows (which leads to an infinite
  loop in the FreespaceChecker thread)
- this was caused by not checking if we make progress with
  parentDir.parent_path()
Bitcoin-Qt: save and restore position of debug window

- move the code for saving and restoring window positions from BitcoinGUI
  to GUIUtil, make it more generic and also use it for saving/restoring
  debug window positions
fix string in intro.cpp, which is untranslatable on Transifex

- seems the code tags in the original string cause errors, when using the
  Transifex site for translation
Merge pull request #2850 from Diapolo/fix_intro

fix possible infinite loop in intro.cpp thread
Revert "Truncate oversize 'tx' messages before relaying/storing."

This reverts commit c40a5aaaf484855a4350fd702e8e72fd21a68155.