ENH: Use MultiResolutionIteration event for registration

Adding a more specific event derived from the InitializeEvent for use
in methods which run at different resolutions. By deriving the event
from InitializeEvent it's completely compatible, yet more clear and
specific.

Change-Id: I403ba288ffc1798c1a85ed4ecb2a192fdd17781b
STYLE: Add itkPrintSelfObjectMacro to improve indenting

It is convention for when object ivar are printed that the indent
should be increase. This macro checks for a null pointer and print the
object with increase indents.

Additional changes to improve the indentation of the registration
method and metrics are done.

Change-Id: I24876aac5f1c22175848a84beed05a874df8ecbd
Merge topic 'MultiResolutionIterationEvent'

5bb77b2c ENH: Use MultiResolutionIteration event for registration
Merge topic 'ImproveIndentOfNestedObjects'

c57adf26 STYLE: Add itkPrintSelfObjectMacro to improve indenting