ENH: remove VersorTransformOptimizerv4 from ITKv4

The recently added RegularStepGradientDescentOptimizerv4 can be used
form both vector and versor transforms optimization. Therefore, the
versor optimzer can be considered as a duplicated class and can be
removed form ITK.

Change-Id: I2705f21fdb4667fa31bcabf5e18b1567d75ca961
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
ENH: Turn off DCMTK Logger messages by default

Reading DICOM Image files will sometimes generate thousands of
DCMTK warnings, even though all the DICOM tags needed to extract
Image data and metadata are read correctly.

This patch turns off the DCMTK logger except for fatal errors.
New Set/GetLogLevel are added to control DCMTK logging. A user
might well want to turn on more verbose output from DCMTK while
debugging.

Change-Id: I152aa446b7620b8268f74436e968c21e54b59101
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
STYLE: dynamic_cast to pointer does not throw

Not need for try catch block when operator can't throw. dynamic_cast
may throw for conversion to a reference type, not a pointer.

Change-Id: Ifa9baa9a30a9a0b23b2e9bfc84481c89831a016c
Merge topic 'UpdateVersorOptDocs'

9b0df1ab ENH: remove VersorTransformOptimizerv4 from ITKv4
COMP: Fix "unused-local-typedefs" warnings

These were easy removals of unused typedefs.

Change-Id: I1cc1f3abae12b007e56eaa163da846bf9b8f5037
Merge topic 'fix-unused-typedef-warnings'

ee63f94b COMP: Fix "unused-local-typedefs" warnings
Merge topic 'DynamicCastDoesNotThrow'

627c2f14 STYLE: dynamic_cast to pointer does not throw
Merge topic 'SILENCE_DCMTK_WARNINGS'

934940b8 ENH: Turn off DCMTK Logger messages by default
COMP: fixed license test command in UpdateDoubleConversionFromGoogle.sh

The script commands to check that the DoubleConversion license
hasn't changed since the last update from the upstream Google
repository were apparently untested, and did not work.

I replaced them with bash commands that did what was intended.

Change-Id: I36a13daf2cd72e7fc27a0adb15331b652e482349
COMP: Adding itkMacro.h for ITK_NULLPTR definition

Error detected by ITK's header test.

Change-Id: Ia3ff7792b2bf18bf38e36fbc1e89dcba508768aa
Merge topic 'FIX_DOUBLECONVERSION_UPDATESCRIPT'

00e18c24 COMP: fixed license test command in UpdateDoubleConversionFromGoogle.sh
Merge topic 'FixMissingHeaderForITK_NULLPTR'

e2927dab COMP: Adding itkMacro.h for ITK_NULLPTR definition