BUG: Catch exception in DeleteEvent

If an exception was thrown by a DeleteEvent Observer the reference
counting for the object wouldn't occur and a SmartPointer destructor
would thrown an exception. This would lead to a memory leak, program
termination or other undefined behavior.

Change-Id: Ib0dda1d8abc510999523db6e2eee5281e3a18056
STYLE: Explicitly declare virtual for derived class member functions

Class member functions derived from parent class with virtual functions
of the same name are implicitly virtual.  This patch set uses a macro
for the c++11 override keyword to indicate that this function was
intended to be overridden in this derived class.

Ensuring that functions signatures are described as virtual is not
strictly needed, but it facilitates maintenance by being consistent.
Approximately 1/2 of the toolkit had the explicit virtual designation and 1/2
relied on implicit behavior.

The ITK_OVERRIDE define allows for non-c++11 compilers to continue to work.

Change-Id: Iba5c2970f2bad4f7f664b92a4420d217546bb22f
STYLE: Explicitly recognize virtual functions

Build the latest version of llvm with clang and extra tools

The clang-modernize tool can insert missing override keyword
as a macro so that missing [optional] virtual identifiers
can be easily added.

mkdir ITK-newclang
cd ITK-newclang/
CC=/opt/llvm_trunk/bin/clang CXX=/opt/llvm_trunk/bin/clang++ CXXFLAGS="-std=c++11 -stdlib=libstdc++" ccmake -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON ../ITK
make -j23
clang-modernize -p ITK-newclang/ -include ITK/Modules/ -exclude ITK/Modules/ThirdParty  -add-override -override-macros

Change-Id: Ifbfb774b8b6eb489f4c0bd8955b13a9b5bce21d0
STYLE: Add ITK_NULLPTR supporting c++11 checks

In c++11 there is an explicit nullptr type that introduces a new keyword to
serve as a distinguished null pointer constant: nullptr. It is of type
nullptr_t, which is implicitly convertible and comparable to any pointer type
or pointer-to-member type. It is not implicitly convertible or comparable to
integral types, except for bool.

This patch adds a define for ITK_NULLPTR as nullptr when c++11 is
available.

clang-modernize -p ITK-newclang/ -include ITK/Modules/ -exclude ITK/Modules/ThirdParty -use-nullptr

Change-Id: I2f9aeb7d92581cc84a75bdc6a00b79169e72100a
Merge topic 'DeclareVirtualFunctionsExplicitly'

0d61aa07 STYLE: Add ITK_NULLPTR supporting c++11 checks
10757725 STYLE: Explicitly recognize virtual functions
1c860901 STYLE: Explicitly declare virtual for derived class member functions
Merge topic 'ExceptionSafteySmartPointerDestructor'

cf589ecb BUG: Catch exception in DeleteEvent