Reimplement CBlockLocator's chain-related logic in CChain.

This removes a few unused CBlockLocator methods, and moves the
construction and fork-finding logic to CChain (which can do these
more efficiently, as it has a height-indexable chain available).
It also makes CBlockLocator independent from the validation code.
Move CBlockLocator to core.h

As CBlockLocator is a P2P data structure, and independent from the
validation logic, it can be moved to core.
Merge pull request #3083 from sipa/chainlocator

CBlockLocator improvements & move to core