Make sure we always have a node to do IBD from

This introduces the concept of the 'sync node', which is the one we
asked for missing blocks. In case the sync node goes away, a new one
will be selected.

For now, the heuristic is very simple, but it can easily be extended
later to add better policies.
Add bytessent, bytesrecv and syncnode to getpeerinfo
Merge pull request #2461 from sipa/syncnode

Make sure we always have a node to do IBD from