remove an unneded .c_str() in OpenNetworkConnection()
Add missing FindNode prototype to net.h

Also make the argument a const std::string & instead of pass-by-value.
pyminer: Fix memory leak, refactor to be more pythonic, maintainable, and possibly faster

Pull #4483.

Note that pyminer is not currently functional due to the removal of
getwork in cf0c47b.
Merge pull request #4567

f469f79 remove an unneded .c_str() in OpenNetworkConnection() (Philip Kaufmann)
Merge pull request #4584

0430c30 Add missing FindNode prototype to net.h (Wladimir J. van der Laan)
Only keep setBlockIndexValid entries that are possible improvements
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