The SkExecutor class is now templated so it can support different work submission models.

The prior std::function-based model is preserved as SkFunctionalExecutor and SkExecutor.

A new callback-style model is now supported with SkCallbackExecutor.

The new SK_GRAPHITE_USE_CALLBACK_EXECUTOR #define can be used to make Graphite take an SkCallbackExecutor in its ContextOptions. Ganesh continues to take an SkFunctionalExecutor.