Add RGBD registration function that registers depth to an external camera

Adding a new function to the RGBD module that implements registration (+tests). This is a common task when working with depth cameras and external RGB cameras. A user would have to find the intrinsics and extrinsics of the depth/rgb cameras separately.

Portions of this code were written by @vrabaud. Specifically, this runs 40-50% faster when the external camera doesn't have any distortion!

Here's an image of a raw depth map, and then the same depth map from the perspective of an external camera 40cm to the left of the depth camera:
![depthregistration](https://cloud.githubusercontent.com/assets/556370/5173539/7b1a1ebe-73f7-11e4-829e-2ad7f640ee37.png)