contrib/linearize: Guarantee that output is generated in-order

This was typically ensured implicitly by virtue of normal bitcoind
operation.  Adding an explicit check provides a stronger guarantee, and
it is cheap to add.
contrib/linearize: split block files based on year-month, not just year
[Qt] minor watch-only changes

- use watch-only, not watchonly
- add back a tooltip hint when hovering addresses and attach
  "(watch-only)" at the end
remove useless millisleep

reduces time to service requests improving performance
net: Remove MilliSleep from StopNode

I don't understand why it would be there in the first place. This looks
like voodoo, not programming.
checkpoints.cpp depends on main, it can use mapBlockIndex directly
Introduce BlockMap type for mapBlockIndex
Use boost::unordered_map for mapBlockIndex
Use memcmp for uint256 equality/inequality
Added XML syntax highlighting
Merge pull request #4842

fb51e28 Added XML syntax highlighting (himynameismartin)
Merge pull request #4790

9189f5f remove useless millisleep (phantomcircuit)
Merge pull request #4833

bbda402 net: Remove MilliSleep from StopNode (Wladimir J. van der Laan)
contrib/linearize: Add feature to set file's timestamp based on block header time.
Merge pull request #4762

399cdbc contrib/linearize: Add feature to set file's timestamp based on block header time. (Jeff Garzik)
8f5a423 contrib/linearize: split block files based on year-month, not just year (Jeff Garzik)
75400a2 contrib/linearize: Guarantee that output is generated in-order (Jeff Garzik)
Merge pull request #4783

fbe0fca [Qt] minor watch-only changes (Philip Kaufmann)
Merge pull request #4838

1e4f87f Use memcmp for uint256 equality/inequality (Pieter Wuille)
8a41e1e Use boost::unordered_map for mapBlockIndex (Pieter Wuille)
145d5be Introduce BlockMap type for mapBlockIndex (Pieter Wuille)
a0dbe43 checkpoints.cpp depends on main, it can use mapBlockIndex directly (Pieter Wuille)
Headers-first synchronization

Many changes:
* Do not use 'getblocks', but 'getheaders', and use it to build a headers tree.
* Blocks are fetched in parallel from all available outbound peers, using a
  limited moving window. When one peer stalls the movement of the window, it is
  disconnected.
* No more orphan blocks. At all. We only ever request a block for which we have
  verified the headers, and store it to disk immediately. This means that a
  disk-fill attack would require PoW.
* Require protocol version 31800 for every peer (released in december 2010).
* No more syncnode (we sync from everyone we can, though limited to 1 during
  initial *headers* sync).
* Introduce some extra named constants, comments and asserts.

This breaks reindexing, which cannot yet deal with out-of-order blocks on disk.
RPC additions after headers-first