Summary:
`ModifierContext` is the base class for `OptimizerContext` and `RegularizationContext`.
`UseModifierBase` is the base class for `UseRegularizer `and `UseOptimizer`
Most of codes in `OptimizerContext`, `RegularizationContext` and other potential Context class in future could be shared. We thus implemented a new base class, called `ModifierContext` to support it.
It happens to be the same for `UseRegularizer` and `UseOptimizer`, and we implemented a new base class called `UseModifierBase`.
In this way, users only need to provide API for **get** and **has** operation. Also, they need to tell what's the **context class**.
**Note**
Mirrored code in fbandroid and fbobj would be added when finally check in.
Reviewed By: kittipatv, xianjiec
Differential Revision: D5724613
fbshipit-source-id: de19bb822dcd41ec5c459d65065603a0abe2fd20
Summary: this diff adds optimizer into param_info, and the associated implementations for modelhelper and brew to set optimizer for each individual parameter.
Reviewed By: kennyhorror
Differential Revision: D5385432
fbshipit-source-id: 5d682f9d1ab077e04a5d76a24d71470f4e64fc92