ENH: Use LearingRate member variable for scaling gradient

This patch enables the ScalesEstimator to estimate the LearningRate
for the RegularStepGradientStepOptimizer. To do this the
CurrentStepLength was change to a learning rate scale to utilize the
estimated member from the base class.

Change-Id: Ia72eb921ab682661bf9f5f2f4244c9438bc027ad
ENH: support learning rate estimation for regular step optimizer

This optimizer has a fixed (regular step size) independent of the
gradient yet dependent on the scales. The super class method
EstimateScales method is over-ridden to account for the gradient
independent scale of the learning rate.

To demonstrate the scales estimator, an additional flag has been added
to the ImageRegistrtion1 test.

Change-Id: I25561344e4edda8abf85c29d7f183f192849e12d
ENH: Use exception safe copy-and-swap for assignment

Utilize the standard implementation of an assignment operator for
clarity.

Change-Id: I101db01696c5c22ab1f25aa213837c6bbf3873fe
Merge topic 'SmartPointCopySwap'

25f98b03 ENH: Use exception safe copy-and-swap for assignment
Merge topic 'LearningRateEsimatorForRegularStep2'

3451eca2 ENH: support learning rate estimation for regular step optimizer
38a0bff6 ENH: Use LearingRate member variable for scaling gradient