Ensenso improvments

* Add `tcp_open_` and close TCP port on destruction

* Added as much const qualifiers as possible

* Small formatting and doc updates

* `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 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, as is, you can't collect clouds + images at the same time (the Ensenso API makes this possible, the PCL implementation doesn't). Maybe I'll add another callback for this later (I'm not sure it's very useful)

I have successfully displayed the 2 (left + right) images using the callback + OpenCV or VTK but I have problems with `pcl::visualisation::ImageViewer` (VTK6 + other bugs..)
I think it's best to wait for the `ImageViewer` to work properly before posting an example.
I can but I really don't like the `std::string` [encoding](http://docs.pointclouds.org/trunk/structpcl_1_1_p_c_l_image.html).

I don't know how to successfully convert to `std::vector<pcl::uint8_t>` and back to an `unsigned char *`

```
const boost::shared_ptr<PairOfFloatImages> images (new PairOfFloatImages);
std::pair <pcl::PCLImage, pcl::PCLImage> images_pcl;

std::copy(images->first.begin (), images->first.end (), images_pcl.first.data.begin ());
std::copy(images->second.begin (), images->second.end (), images_pcl.second.data.begin ());

unsigned char *l_image_array = reinterpret_cast<unsigned char *> (&images_pcl.first.data[0]);
unsigned char *r_image_array = reinterpret_cast<unsigned char *> (&images_pcl.second.data[0]);
```

![capture du 2014-11-26 16 38 15](https://cloud.githubusercontent.com/assets/5566160/5203879/bcf7e3ae-758a-11e4-928c-e0a2bd1b201c.png)