[PGO] Refactor Value Profiling into a plugin based oracle and create a well defined API for the plugins.
Summary: This PR creates a utility class called ValueProfileCollector that tells PGOInstrumentationGen and PGOInstrumentationUse what to value-profile and where to attach the profile metadata. It then refactors logic scattered in PGOInstrumentation.cpp into two plugins that plug into the ValueProfileCollector.
Authored By: Wael Yehia <firstname.lastname@example.org>
Reviewer: davidxl, tejohnson, xur
Reviewed By: davidxl, tejohnson, xur
Differential Revision: https://reviews.llvm.org/D67920
Patch By Wael Yehia <email@example.com>