Add a new "graph" module and point_cloud_graph class

This starts a series of pull requests to contribute the sources developed as a part of the past Toyota Code Sprint. The first few requests will be concerned with introduction of a new experimental module "graph". Later requests will add random walker based segmentation class. Finally, an example app and a tutorial will be submitted. The contribution is split into several pull requests to simplify reviewing process as the amount of code is quite large.

> **pcl_graph** is an experimental library that aims to provide a common toolbox to aid development of graph-based 3D processing algorithms within the PCL framework. The library has a strong influence from
[Boost Graph Library](http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/table_of_contents.html) and relies on the concepts, classes, and algorithms found there.

> At the heart of the library lies the pcl::graph::point_cloud_graph class, which may be considered to be a blend of a PCL point cloud and [boost::adjacency_list](http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/adjacency_list.html) (the most common graph representation in BGL). As such, this class may be used in PCL algorithms where a point cloud input is expected, as well as in BGL algorithms, where a graph is needed.

The `point_cloud_graph` class comes with a very extensive documentation, both in the form of doxygen comments for the end-users, and normal in-code comments explaining non-trivial sections.

A unit test with 30+ cases is also present.