Add DepthImage observation source

This allows to generate the clearing `xyz` points using the `PinholeCameraModel` of the depth images, for those pixels/points where there's no "echo"/"return" (invalid pixels).

See https://github.com/ros-perception/image_pipeline/pull/104

This PR also needs https://github.com/ros-perception/image_pipeline/pull/108 to be merged before, since it tries to avoid copying code from `depth_image_proc`. This other PR simply exports some headers and extends the `convert` function to allow for setting `range_max` for invalid pixels.
Is there a reason you changed this functionality? I'm not sure anyone is using the obstacle_range parameter in a namespace other than the specific costmap namespace, but I don't see why you'd lump the change in with this PR.