ENH: Explicitly specify internal linkage for internal observer objects

The Observer and SubjectImplementation are internal to the
itkObject.cxx file. Explicitly specify linkage.
ENH: Enable observed events to modify observers

There is no way to know if an object is executing an event, and it
wasn't safe to modify the observers when an event was being executed.

This patch is inspired by the ModifiedList implementation in the VTK
SubjectHelper class. It allows for recursive execution of events
and modification of the observers during execution.

The Command list items are saved on the stack recursively. Given that
it's not expected to utilize a large number of Observers with ITK, nor
is it expected to be common practice to delete Observers during event
execution, this method was chosen because it does not utilize any
dynamic memory allocation which causes reduce performance. This was
done at the expense of stack space. Additionally, when an observer is
deleted the search time is O(n^2), but it's safe.

Change-Id: Ia2068044454806b2cf018ba881126b65b152ac3c
Merge topic 'EnableObserverModifyObservers'

f7307e26 ENH: Enable observed events to modify observers
4c4e6266 ENH: Explicitly specify internal linkage for internal observer objects