Clean up SkOnce:

  1 Remove atExit feature: clients can do it just as well as SkOnce can.
  2 Remove support for functors: no one but the unit test did that.
  3 Remove support for unused non-static SkOnceFlag (no SK_ONCE_INIT).
  4 Add SkOnce variants for no-arg functions so we're not forced to pass dummy values all the time.
  5 Merge SkSpinlock and SkOnceFlag, making all members private.
  6 More notes about memory barriers, adding an acquire load after acquiring the spinlock.

BUG=skia:
R=bungeman@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/302083003
7 files changed