message: Take cs_main lock later in GETHEADERS p2p message processing
  With IsInitialBlockDownload() now using an atomic bool we can
  take the lock on cs_main a little later and perhaps avoid taking
  it if we return earlier.
diff: @@ -5355,12 +5355,12 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
  uint256 hashStop;
  vRecv >> locator >> hashStop;
  - LOCK(cs_main);
  if (IsInitialBlockDownload() && !pfrom->fWhitelisted) {
  LogPrint("net", "Ignoring getheaders from peer=%d because node is in initial block download\n", pfrom->id);
  return true;
  }
  + LOCK(cs_main);
  CNodeState *nodestate = State(pfrom->GetId());
  CBlockIndex* pindex = NULL;
  if (locator.IsNull())
  