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)
It took me a little reading to understand exactly what was the problem here.
Since `camera` does not own the object pointed (in that case, `root`) the use of a `shared_ptr` makes no sense (or at least, is useless?) because this pointer will never free the underlying object in the memory.

Am I right?
I've done modifications accordingly, I think it is right.