Initial implementation of FeatureList in base/.

This first CL adds the initial version of FeatureList singleton class,
providing support for the following:
  - Initial class structure and singleton registration
  - Support for --enable-features= and --disable-features= flags
  - API to test if a feature is enabled or not
  - Its registration in chrome_browser_main.cc
  - Debug checks to ensure each Feature struct is defined only once
  - Basic unit tests

Parts that will be implemented in follow-up CLs:
  - Integration with FieldTrials (split out into a follow-up CL)
  - VariationsService integration and kill switch support
  - Various bits above base/ (e.g. about flags, sub-process stuff ,..)

BUG=526169

Review URL: https://codereview.chromium.org/1278403003

Cr-Commit-Position: refs/heads/master@{#347438}


CrOS-Libchrome-Original-Commit: bccbb867acc61bb9b8c88e3a7b0cbee6b08df0de
5 files changed
tree: 26375f208596402cc649f9b8164bb4076a564e87
  1. base/
  2. build/
  3. components/
  4. dbus/
  5. device/
  6. ipc/
  7. mojo/
  8. testing/
  9. third_party/
  10. ui/