This pull request attempts to resolve the checkpoints -> validation -> checkpoints circular dependency.
The circular dependency is resolved by moving the CheckPoints::GetLastCheckpoint(const CCheckpointData& data) function to validation.cpp where it used exclusively by the private function ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& state, const CChainParams& params, const CBlockIndex* pindexPrev, int64_t nAdjustedTime).