Add Ensenso support

If you want to test please read [the tutorial](https://github.com/VictorLamoine/pcl/blob/ensenso/doc/tutorials/content/ensenso_cameras.rst) first. For the last steps you will, of course, need an Ensenso device!

- The Ensenso grabber has been written like the OpenNI grabber class
- The code contains 2 examples, with/without the Ensenso grabber class
- The code is documented
- Support for Windows has not been tested
- A tutorial has been written to explain how to use the Ensenso in PCL

[pcl-developers topic](http://www.pcl-developers.org/IDS-Imaging-Ensenso-td5709495.html)
You suggestion:
> camera_ = &((*root_)[itmCameras][itmBySerialNo][device]);

Throws an error:
```
/home/dell/pcl/io/src/ensenso_grabber.cpp: In member function ‘bool pcl::EnsensoGrabber::openDevice(int)’:
/home/dell/pcl/io/src/ensenso_grabber.cpp:149:60: error: taking address of temporary [-fpermissive]
     camera_ = &((*root_)[itmCameras][itmBySerialNo][device]);
```

Is `root_` address temporary?!