Use pong receive time rather than processing time
remove SOCKS4 support from core and GUI

- now we support SOCKS5 only

Conflicts:
	src/init.cpp
	src/rpcnet.cpp
error out, when we detect -socks argument
Rename SendMoneyToDestination to SendMoney.

Get rid of SendMoney and replace it by the functionality of
SendMoneyToDestination.  This cleans up the code, since only
SendMoneyToDestination was actually used (SendMoney internally from this
routine).

Conflicts:
	src/wallet.cpp
	src/wallet.h
qt: Pick translation messages only from necessary files

Utility libraries (common, util) as well as extra tools shouldn't be
parsed for translation messages, only the server and wallet part qualify
here.

Conflicts:
	src/Makefile.qt.include
	src/qt/bitcoinstrings.cpp
Oops
Move ui_interface to bitcoin_server.a

There is no need for it in the utility libraries or tools.
Put it in init.cpp, and in the tests separately (as they can't link init).

Conflicts:
	src/init.cpp
	src/qt/bitcoinstrings.cpp
Bugfix: strerror_r can return an error, and if it does, POSIX does not specify the content of the buffer
Fix the build for windows

Problem introduced in caf6150. Thanks to @drak for noticing. Fixes #4473.
test/bloom_tests: Use UL suffix for unsigned long number to ensure compatibility
Show bitcoin quantities with full precision, even in the presence of trailing zeros

Conflicts:
	src/qt/bitcoinunits.cpp
Improved logging and Decimal support
build: re-add AM_LDFLAGS where it's overridden

using _LDFLAGS replaces AM_LDFLAGS rather than adding to it.

Conflicts:
	src/Makefile.qt.include
	src/Makefile.qttest.include
build: fix win32 static linking after libtool merge

Libtool eats the -static flag rather than passing it along to the compiler. To
get the same effect, -all-static is used instead.
Payment request parsing on startup now only changes network if a valid network name is specified.
add GetRandBytes() as wrapper for RAND_bytes()

- add a small wrapper in util around RAND_bytes() and replace with
  GetRandBytes() in the code to log errors from calling RAND_bytes()
- remove OpenSSL header rand.h where no longer needed

Conflicts:
	src/net.cpp
	src/rpcserver.cpp
move rand functions from util to new random.h/.cpp

Conflicts:
	src/Makefile.am
	src/test/skiplist_tests.cpp
make RandAddSeed() use OPENSSL_cleanse()

- removes the cstring include and is also used in RandAddSeedPerfmon()
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).

Conflicts:
	src/main.cpp