Bug #430: Use the function "list(APPEND ...)" at more places in build scripts

The command "list(APPEND ...)" can be executed more efficient than the setting
of variables as before. Specific support was added by the tool "CMake 2.4".
http://cmake.org/Wiki/CMake_Performance_Tips#Use_LIST.28APPEND_....29

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Fix a bug in `OctreePointCloudAdjacency::computeNeighbors()`

The `x`, `y`, and `z` fields of `OctreeKey` are unsigned integers, so
in some cases unsigned integer underflow occurs and the tree is queried
for non-existing leaves with huge keys. Due to the way `findLeaf()` is
implemented, such queries occasionally succeed and return some random
leaves.
Updated the fix for compute neighbors octree key bug
Added header for PCL_ERROR macro
add setWindowPosition and setWindowName to PCLPlotter
Add getRGBVector3i() to every point type with RGB

Currently only some of the point types with RGB have methods to access
their RGB data as an Eigen vector.

This commit moves definitions of `getRGBVector3i()` and
`getRGBVector4i()` inside `PCL_ADD_RGB` macro so that every point type
with RGB field gets these functions.
Split PCL_ADD_POINT4D and PCL_ADD_NORMAL4D into parts

PCL_ADD_POINT4D becomes a composite of two simpler macros:

* PCL_ADD_UNION_POINT4D
* PCL_ADD_EIGEN_MAPS_POINT4D

The former adds a union, and the latter adds a family of Eigen vector
accessors. The same holds for PCL_ADD_NORMAL4D. These splits are not
strictly necessary, as both macros are always used together. However,
this way the style consistent with PCL_ADD_..._RGB macros, which we
ought to have separated.
Split PCL_ADD_RGB macro into two parts

In some point types the RGB union is a part of a larger struct, so we
can not have Eigen vector accessors in the same macro.
Add getRGBAVector4i() and getBGRVector3/4cMap() functions
Add tests for all combinations of point types and Eigen vector accessors
Add a family of has_field meta-functions
Add tests for has_field family of meta-functions
Merge pull request #455 from jpapon/octree_key_fix

Fix bug in OctreePointCloudAdjacency::computeNeighbors()
Merge branch 'master' of https://github.com/PointCloudLibrary/pcl
add spaces between function names and braces
Merge pull request #462 from taketwo/add-has-field

Add a family of "has field" meta-functions
Add a function to copy data between points of different types
Add a unit test for `copyPoint()` function
Update `copyPointCloud()` functions to use `copyPoint`
Update various PCL classes to use `copyPoint()`