Implement Auto Feedback Directed Optimization Support

Summary:
Introduces auto feedback directed optimization support for arm, mips, and x86 targets.
The following should be taken note of:

  - If runtime profile generation (BUILD_FDO_INSTRUMENT) is set, auto feedback directed optimizations will be disabled, just as feedback directed optimizations would be disabled.

  - You may prefer to use AFDO over FDO by setting BUILD_PREFER_AUTO_FDO

  - If TARGET_FDO_PROFILE_PATH is set, but TARGET_AUTO_FDO_PROFILE_PATH is unset, we will attempt to use the FDO profile path instead. Otherwise, the default path of afdo/profiles/$(TARGET_ARCH)/$(TARGET_ARCH_VARIANT) will be set.
Note: this will only work if TARGET_FDO_PROFILE_PATH contains afdo runtime profiles as well, but is here to cover all bases.

  - LOCAL_NO_AUTO_FDO_SUPPORT may be set to locally disable AFDO cflags, however we also abide by LOCAL_NO_FDO_SUPPORT for full compatibility.

  - We will not apply AFDO cflags for host modules by default.

  - We do not have full support for static modules yet, so as to maintain library portability.

Test Plan: win

Reviewers: randall.rushing, Mustaavalkosta, synergy

Reviewed By: synergy

Differential Revision: http://review.codefirex.com/D289