Moving testing Command callbacks to SimpleITKTestHarness header

Change-Id: Ibccbf495ffd19f4a260b5d9eab1c75eee0737780
Deriving IO classes from ProcessObject

This patch adds event support to IO classes.

Adding ToString and GetName methods which were missing before,
additionally add the ProcessObject::PreUpdate call to support events.

Adding wrapping of ImageReaderBase for access to ProcessObject
methods.

Change-Id: I9fbb6f77968f84e943e78483c049cd9b927ac610
Improving testing of IO classes

Testing event reporting. Adding coverage to base ProcessObject
methods.

Change-Id: Id7e802b6c61de917a629d4d3e54a182dacdc641b
Adding to gtest logging of unexpected exceptions with *_NO_THROW

Change-Id: I1449db54ec0664c171c27cee354dd312cbc69b0c
Adding FunctionCommand class

This class adds the ability to invoke external functions and member
functions from a Command class to be used as call-backs.

Change-Id: I3246e4311e8f0ec3f8a9b5d4f754e471dde4e095
ENH: Adding option to Command for ProcessObject to own

Adding option for the ProcessObjects to own the Command, so that it
will be deleted it when the last ProcessObject releases the
Command. Access methods are provided to toggle state.

Change-Id: Ieae43ac7420fa7ec156241e9cf8edcd280b26fb0
ENH: Adding user settable name to the Command classes

This is useful for debugging, where the name provided for the command
will be printed with the ProcessObject, when in the ITK debug info.

Change-Id: Ic33929e4a259588b725124bc895cb18c15330afc
Updating LabelStatistics test to check Command Events.

Change-Id: I6178424b2757da4d4f257399f053d8fc621defca
DOC: fixing doxygen comment grouping in ProcessObject

Change-Id: Ib7df0c67c00b2281e316338105b650c6faf4b55e
Adding nothrow exception specifier to method for clarity

Change-Id: I0fd99590d79109731a2af24fc07f0e9ea693c843
BUG: Allow google "TEST" macro's case and name to be surround by space

Some tests were not being run because white space was in inadvertently
included in the name of the test to run.

Change-Id: I21b6525c3ea08725a1f6abf14f0f6619695f93bc
BUG: increment iterator in HasCommand method

This caused an infinite loop, when multiple commands were registered.

Change-Id: I89ec3f03a91a03aeef1ecaaaa6f3ea38f6690ca8
Adding test for the ProcessOwnership feature in Command class

Change-Id: I1e2501c40c1ce1c2ce34cd4e3f7ed59feb8c8524
BUG: only call RemoveProcessObject once from the process object

Allowing the ProcessObject to call Command::RemoveProcessObject
multiple time didn't allow for the correct time for the Command to
delete itself.

Change-Id: Ic0492e50c65b1c6a4bb7ba5a8c82424fd91b7b94
BUG: test using deleted variable, caused segfault

Change-Id: I68f6d05d9bec03ab3be6595d4029a4eca4519ed2
Merge topic 'SIMPLEITK-453_AddEventCallbacks' into next

66ce56ab BUG: test using deleted variable, caused segfault
db501388 BUG: only call RemoveProcessObject once from the process object
fe1d1bb2 Adding test for the ProcessOwnership feature in Command class
6820415a BUG: increment iterator in HasCommand method
7be3398c BUG: Allow google "TEST" macro's case and name to be surround by space
62ae34d2 Adding nothrow exception specifier to method for clarity
b23d24ac DOC: fixing doxygen comment grouping in ProcessObject
290f4c89 Updating LabelStatistics test to check Command Events.
541e9c22 ENH: Adding user settable name to the Command classes
e5464173 ENH: Adding option to Command for ProcessObject to own
90fda32b Adding FunctionCommand class
2c4796e1 Adding to gtest logging of unexpected exceptions with *_NO_THROW
d8a863f1 Improving testing of IO classes
a83f5d2e Deriving IO classes from ProcessObject
9f017c69 Moving testing Command callbacks to SimpleITKTestHarness header