Isolate plugins and their dependencies, starting with PCL. Create Kernel
class for kernel plugins.

    * A plugins folder has been created for PCL (and other) plugins. All
      plugins are now built via the existing plugin framework (i.e., as
      shared libs that are registered at runtime). Plugins will link
      against PDAL, but PDAL can be built independently of any plugin
      dependencies.

    * References to PDAL_HAVE_PCL have generally been removed, as
      PCL-dependent code should only be encountered within the PCL
      plugin directory, and only after PCL has been detected. Within
      PDAL, prior checks for PDAL_HAVE_PCL have been replaced by queries
      of getFilterCreator (also Reader, Writer, Kernel), which has been
      made public in StageFactory. These sections of code are only
      encountered when plugins have been determined to be present at
      runtime.

Remaining todos (these can be addressed post-merge)...

    * Visualization option only displays output buffer for now.
      Displaying the input and output buffers would force a PCL
      requirement on PDAL. Still need to think through how to pass
      multiple buffers to the existing PCLVisualizer driver (writers
      typically only have one buffer).

    * PCL unit tests pass with a warning if PCL plugins are not
      installed - though we should still move PCL tests to the plugin
      folder.

Other miscellaneous, but noteworthy changes include...

    * In FileUtils and StageFactory, assume that if the filename starts
      with http, we are passing a Greyhound url. This is independent of
      the plugins changes, but allows us to import data from Greyhound.

    * Remove stubs.

    * Remove Application class, it is now part of Kernel.

    * VoxelGrid removed from decimation filter, now called via PCLBlock
      (if available) in Translate kernel.

    * Unit tests binpath updated for APP_BUNDLE builds.

    * Add MovingLeastSquares to PCL pipeline and Smooth kernel.

    * Disable NormalEstimation and ConditionalRemoval in PCL pipeline
      (allows us to stick with POINT_XYZ types).

    * Remove PCL from getVersionString.

    * Remove references to USE_PDAL_PLUGIN_PCD.
addressing abell's comments
include tweak #532
port over visualization fix from master
Query is OBE
update Sort from Application to Kernel
do the macro thing
use unique_ptr with createKernel
Merge pull request #532 from PDAL/pcl-submodule

Isolate plugins and their dependencies, starting with PCL. Create Kernel class for kernel plugins.