Use structure for ProcessObject's Command book keeping

Change from a std::pair to a custom structure for keeping track of
registered commands for the process object. This will allow adding
additional members to improve book keeping.

Change-Id: I12f59e9796ad7ace8ea0aa1b6a48259315f07ad0
Create overloaded comparison operator for EventCommand

Compare the m_Command for use with stl algorithms.

Change-Id: I8f0ff1bf1f78261f4e85a08d865125fc48d55302
Add ITK's command tag to command book keeping

Change-Id: I35927a64e68a33598a955eabd8b80be010a273d3
Reset ITKTag for command when process object is deleted

Change-Id: I03ec2b9c5a78eb979b464dcfe57a0b22b559d744
ENH: Remove command from active process when deleted

Change the behavior for program termination to simply removing the
command from the ITK process object.

Previously, in the case when there was an active process and the
SimpleITK command was deleted program termination would occur. With
the added book keeping, the specific command(s) can be removed from
the ITK process object.

Change-Id: I590dd75a7826044f4c444dfaf51954342429b348
Add command to active process if it exists when adding to sitk

Change-Id: I7d81587b6fd6c405c5dbdd11f283db0b9fe41046
Factor out common code in adding command to process object

Change-Id: I16c5eda729a40fda37d1e2648f99978d6499f29e
STYLE: Clean up order ProcessObject header

Change-Id: I0347f77e3ed97679fb1c16940ffc24b74af40118
Add OnDelete Command before adding more commands

Change-Id: Ib2b142d95c6abc76d904ff2a63195b6646751bd6
Remove command from active process in RemoveAllCommands

Change-Id: Ib4a4d44127b391c90636762a4a110ca52c713c0d
Change DeleteCommandActiveProcess test to have expected behavior

This test use to be a death test and expect program termination. Now
it expects to have defined behavior.

Change-Id: Ib945d175b050927251fabe02c6c3dd9815c00dec
Update ProcessObject Command documentation

A Command can not always be deleted. It can not be deleted while the
filter is executing.

Change-Id: Id9c904a79061877c89f421a982de614d1ba83795
Merge topic 'SIMPLEITK-525_EnableDeletionOfCommandProcessExists' into next

ff1aa671 Update ProcessObject Command documentation
733e78d4 Change DeleteCommandActiveProcess test to have expected behavior
e9029812 Remove command from active process in RemoveAllCommands
a8624cc9 Add OnDelete Command before adding more commands
78dc0b74 STYLE: Clean up order ProcessObject header
300c9a6a Factor out common code in adding command to process object
75a52071 Add command to active process if it exists when adding to sitk
bbe9e4cb ENH: Remove command from active process when deleted
3723ab59 Reset ITKTag for command when process object is deleted
3078748c Add ITK's command tag to command book keeping
b45049f7 Create overloaded comparison operator for EventCommand
5cabc00b Use structure for ProcessObject's Command book keeping