Decouple CChain from mapBlockIndex
Move CBlockIndex, CChain and related code out of main
CMessageHeader sanity changes

- Remove spurious `pchCommand[1] = 1` in CMessageHeader()
- Make sure that pchCommand is zero-padded if length is shorter than
  COMMAND_SIZE
- Use strnlen to determine length of pcmCommand in GetCommand
build: fix release name strings for gitian builds

When building from a distdir as gitian does, checking for the .git dir
is not reliable. Instead, ask git if we're in a repo.
remove code below asserts in limitedmap.h (fixes a ToDo)
[Qt] minor changes in splashscreen.cpp

- guard an unused variable with Q_UNUSED() macro
- remove a commented out line of code
Fixing out of bounds asses error
Avoiding referencing elements of an empty vector
Reinitializing list's begin iterator after few elements were erased from the head
Do merkle root and txid duplicates check simultaneously

Move the txid duplicates check into BuildMerkleTree, where it can be done
much more efficiently (without needing to build a full txid set to detect
duplicates).

The previous version (using the std::set<uint256> to detect duplicates) was
also slightly too weak. A block mined with actual duplicate transactions
(which is invalid, due to the inputs of the duplicated transactions being
seen as double spends) would trigger the duplicates logic, resulting in the
block not being stored on disk, and rerequested. This change fixes that by
only triggering in the case of duplicated transactions that can actually
result in an identical merkle root.
Apply clang-format on crypto/* and compat/*
[Qt] add more NULL pointer checks in bitcoingui

- add missing checks for clientModel and optionsModel
- small cleanups for an #ifdef on Mac
- remove an unneeded else
Merge pull request #4958

e6beedc [Qt] add more NULL pointer checks in bitcoingui (Philip Kaufmann)
RPC getnetworkinfo: export local node's client sub-version string
Merge pull request #4914

ff36cbe RPC getnetworkinfo: export local node's client sub-version string (Jeff Garzik)
Merge pull request #4966

c8063b5 Fixing out of bounds asses error (ENikS)
Merge pull request #4946

c65cc8c build: fix release name strings for gitian builds (Cory Fields)
Fixed the broken `brew` shell command
Merge pull request #4782

2e5361b remove code below asserts in limitedmap.h (fixes a ToDo) (Philip Kaufmann)
Merge pull request #4967

459a2d2 Avoiding referencing elements of an empty vector (ENikS)