Build and test bpf without zlib

zlib support was baked into parts of the bpf driver, via the
`BpfSeqIterator::inflate` method and the logic in
`BpfSeqIterator::readBlock`. This patch only defines `inflate` if we
have zlib support, throws a runtime error if the bpf iterator tries to
read a block without zlib, and disables zlib tests if there's no zlib
support.

I'm not sure that my treatment of `readBlock` is correct, as for all I
know there could be a way to read a block without zlib. However, since I
don't know better, I kept things dumb and just threw an error if we
don't have zlib. @abellgithub can we do better?
Guard tests that require srs support

Add `#ifdef PDAL_SRS_ENABLED` around tests that require SRS support, and
in once case split out the srs-dependent parts of a test into a seperate
(guarded) test.

In the stats filter test, ther could be potential for simplifying those
the guarded tests to they don't depend on srs functionality. However,
that would be work for another commit.
Exclude colorization filter if we don't have GDAL

It doesn't make much sense to overlay a GDAL raster without GDAL. This
patch also reorganizes the GDAL files in src/CMakeLists.txt.
Conditionally exclude PCL

All the PCL code is now turned off if WITH_PCL == FALSE. We also remove
the command-line help text that mentions PCL.
Conditionally exclude python-dependent filters

Programmable and Predicate.
Merge pull request #374 from gadomski/build-without-optional-components

Build without optional components
Add a second Travis build config

@hobu mentioned in
https://github.com/PDAL/PDAL/pull/370#issuecomment-43626129 that we're a
bit lazy about our conditional file inclusion, since many PDAL developers
have relatively static Cmake configurations during development. Issues
like #370 can pop up when developers don't test out various build
configurations.

This patch adds a second Travis build configuration via the
[env](http://docs.travis-ci.com/user/build-configuration/#Set-environment-variables)
option. `.travis.yml` now sets the `PDAL_OPTIONAL_COMPONENTS`
environment variable to either "all" or "none", and this variable is
then used to control the installation of dependencies and the CMake
configuration.

I aimed to make this patch as low-impact as possible by only switching
on/off CMake variables that were either:

1. Previously controlled by `scripts/ci/script.sh` (e.g. `WITH_GDAL`)
2. Defaulted to `ON` (e.g. `WITH_ZLIB`)

All other CMake options were explicitly turned off (e.g. `WITH_SQLITE`).
These can (should?) be turned on in a later patch.
Merge pull request #372 from gadomski/travis-build-without-optionals

Add a second Travis build config
Build with clang and g++-4.8 on travis

In order to build with clang, we have to compromise a bit and build with
embedded boost. Due to c++11 changes, boost libraries built with g++ can
cause issues when building with clang, if by issues I mean segfaults.
Therefore, we build with embedded boost when using clang.

Clang c++11 support does require updated libstdc (on Travis) so we
install g++-4.8 regardless of our compiler choice.

Since it was easy, this patch also updates our g++ version to 4.8.
Merge pull request #388 from gadomski/clang

Travis, build clang
Use ninja when building with clang

Our clang side of the travis matrix is going to be our 'funky stuff
zone'. We also install cmake 2.8.12.2 for the Ninja generator.
Merge pull request #389 from gadomski/travis-clang-ninja

Use ninja when building with clang
Disable Ninja builds for clang

The cmake build was taking too long, so Travis was killing it. If we
find a packaged cmake 2.8.12 we could re-enable Ninja.
Re-enable Ninja, but set the thread count
Update vagrant config.
Merge upstream and fix conflict.
Merge pull request #396 from connormanning/vagrantUpdate

Update vagrant config.