Fixed thread-safety issue.

Which also seemed like an unnecessary optimization.

Change-Id: Ifa0f905912f352166fe3c47e1bb68a6a66ec4797
Refactored the location of the atomic classes.

Moved atomic classes into an SMP directory to make sure that
the SMP backends are obvious for what they are. Also added
a Simple backend in the CMake file which currently is the same
as Sequential.

Change-Id: I7aa0262ea37da774acbe9c2ca13c8e5134178e49
Fixed atomic int compile issues on Windows.

It turns out that forward declaring various atomic functions
(_InterlockedXXX) is not straightforward. I ran into situations
where this did not link. So I moved all of the atomic
implementation for Windows to the cxx file and properly
included vtkWindows.h. This should fix all compile/link issues
of atomic ints on Windows. Note that the main reason that I
chose not to include vtkWindows.h in the header is that
atomic ints are used by all subclasses of vtkObjectBase and
including vtkWindows.h all over the place would degrade
compile performance significantly.

Change-Id: I00bf173140587b07665d7d5d84ab0cad5bfda7fe
Merge topic 'atomic-refactoring' into master

55fab3d5 Refactored the location of the atomic classes.
Merge topic 'atomic-compile-issue' into master

75062ae4 Fixed atomic int compile issues on Windows.
Merge topic 'thread-safety-fix' into master

aadae2e0 Fixed thread-safety issue.
Fixed bug (compile issue) introduced with previous refactor.

Critical sections need to be defined whenever atomics are not
natively supported. Fixed wrong ifdef.

Change-Id: Icd5e2245a65c6832c52ab1ba07cf9d9b89768859
Merge topic 'atomic-compile-error-win32' into master

031fdf7e Fixed bug (compile issue) introduced with previous refactor.
ENH: Update selected Filters/Hybrid to support DesiredOutputPrecision

This updates selected filters to support a choice of desired precision
(default, single, or double) for output points. It uses the analogous
code in vtkThreshold as a model.

Change-Id: Iaf82e72089b95a1787701b3d9ae7a6c4116c01a5