depends: add a fallback path in case package sources go missing

If a source url fails to download, try again at
$FALLBACK_DOWNLOAD_PATH/file.name, where FALLBACK_DOWNLOAD_PATH can be
overridden by the user.
Move UpdateTime to pow
Move CBlockIndex::GetBlockWork() to pow::GetProofIncrement(nBits)
replace ComputeMinWork with CheckMinWork
Bypass reloading blocks from disk
depends: add sensible download timeout/retry values
Merge pull request #4752

df7565d depends: add sensible download timeout/retry values (Cory Fields)
c897b1e depends: add a fallback path in case package sources go missing (Cory Fields)
Revert "Add a getutxos command to the p2p protocol. It allows querying of the UTXO set"

This reverts commit da2ec100f3681176f60dec6dc675fc64147ade3a.
Merge pull request #4764

92bb6f2 Bypass reloading blocks from disk (Pieter Wuille)
Merge pull request #4377

654871d replace ComputeMinWork with CheckMinWork (jtimon)
b343c1a Move CBlockIndex::GetBlockWork() to pow::GetProofIncrement(nBits) (jtimon)
c2c02f3 Move UpdateTime to pow (jtimon)
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