WIP: ENH: handle optional num parameter without default
Use a boost::optional instead of ScalarType (i.e. int or float) to represent a numerical parameter's default value. This removes the default default value of 0 and instead relies on a new method HasDefaultValue.
Also replaces boost::any by boost::optional for m_Value which is more correct.
Not ready to merge. I am pushing the branch for feedback and to see the dashboard output.