Ensenso improvments

Commit by commit
---
- Add `tcp_open_` and close TCP port on destruction
- Added as much const qualifiers as possible
- Small formatting and doc updates
- `EIGEN_MAKE_ALIGNED_OPERATOR_NEW` is not needed; not Eigen members
- `grabSingleCloud` can only be called when no device is running
- `camera_` wasn't public while `root_` was, it's easier for the user to access the `camera_` parameters now
- Added more transformations function needed for the extrinsic calibration code
- The extrinsic calibration code has been tested and works, I didn't get good results for the moment but it's most probably the data that is not good (not the code implementation).
- The image capture callback allows the user to display the images from the camera using VTK/OpenCV, you can collect clouds + images at the same time.

Miscellaneous 
---
I fail to display the 2 images with `pcl::visualisation::ImageViewer` ()
I think it's best to wait for the `ImageViewer` to work properly before updating the tutorial.