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.
Add missing include required by lround. Closes #382
Update documentation for apps. Closes #380
Merge pull request #381 from chambbj/issues/380-apps-documentation-update

Update documentation for apps. Closes #380
Merge pull request #383 from chambbj/issues/382-include-pdal_macros

Add missing include required by lround.
add smb-shared folder for win32 clients
PCL block is in master now, Vagrant users are missing out on other improvements in master
Merge pull request #385 from chambbj/issues/384-fix-vagrant-pdal-script

Closes #384
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
Merge branch 'master' into point-context

Conflicts:
	test/unit/CMakeLists.txt
Use elseif in CMakeLists, not just else

This allows us to actually switch off PCL.