ENH: adding ThresholdMaxCC filter
ENH: Adding Vector CC image filter

Todo: still need to find a normalize vector image to use for testing
data, and then validate the results.
ENH: adding LabelVoting image filters to SimpleITK

This patch adds the easy to wrap filters to simpleITK.
Updated Documentation
Fixing incorrect JSON
ENH: adding missing test for BinaryMedian filter
COMP: itk's numeric traits aren't available for default

As we are not including itk headers in sitk headers, the
itk::NumericTraits are not available for default function arguments.
BUG: First test must only use arguments in procedural method

The first test is used to compare with the results from the procedural
method. There for testing arguments used for public depclarations
should not be used.
ENH: Add BUILD_SHARED_LIBS as an option

Default BUILD_SHARED_LIBS to OFF, as SimpleITK libs were previously
hard coded to STATIC.

... but always build the lua lib and the gtest lib as STATIC.

Further changes are required to get shared library builds on Windows
working. Specifically, export declarations are necessary.
ENH: adding headers with EXPORT macro for each library

Each library has a separate Export macro. This indicate which symbols
are imported and exported for windows DLL and with gcc when the fault
visibility is turned to hidden.
ENH: removed circular dependency between sitkMacro and sitkException

The dependecy was removed with a forward declaration, but many fills
need to be updated to include the sitkExceptionObject header.
ENH: Using EXPORT api macro across the toolkit

Each class which is part of the interface need to be marked as
exported for shared libraries.
BUG: adding missing library linkage for BasicFilters library
BUG: removed extra cmake message stagement
ENH: on gcc made inline methods hidden

This has a minor reduction in the size of libraries.
ENH: do not register ITK IO factories in no IO libraries
ENH: Renamed top-level option to disable testing

With the SimpleITK prefix, this option didn't seem to be taking effect
in the SimpleITK project. So it was renamed to the more standard
BUILD_TESTING.
ENH: Only use virtualenv when testing is enabled.
BUG: must use orignal python to install virtualenv
Fix SimpleITK C# x64 platform issue.

At the moment when a C# assembly is compiled on an x64 platform a CS1607
warning is displayed (referenced assembly targets wrong platform).
This is because for x64 platforms the wrong compiler is found
(the {windir}\Framework\..\csc.exe is used, rather than
{windir}\Framework64\..\csc.exe).

It seems difficult and inelegant to start detecting different compilers
based on platform, so the solution employed here is to always compile
C# assemblies for ANYCPU (this is the current solution for Linux systems
anyhow). This means the the interpreter will automatically generate the
correct platform-specific machine code (x86 or x64) on-the-fly.

In addition to this fix, some minor refactoring is done including:
(a) adding "call" to the front of Windows Mono compiler is now done in
FindCSharp rather than UseCSharp,
(b) minor refactoring for "if" statements to make more readable,
(c) append references/sources using strings rather than lists, and
(d) added status messages to see the compiler command line (useful
for debugging).

Change-Id: I8b3df041852347113b6da6c162f73eb44152a86c