First version of the new DepthMap base type

This type should be able to represent distance informations collected with different types of sensors (3D lidars, rotating 2D lidars, ToF cams, etc.)
Therefore it is possible to arrange the measurements rotated or translated in two dimensions. Those intervals can be either regular or irregular.

Mainly I'd like to have your opinion on the part where the angular or planar resolutions are defined.
The type has now two fields
``
std::vector<double> vertical_interval;
std::vector<double> horizontal_interval;
``
which can either be an angle or a position on a plane. How the interval is interpreted is selected by a projection type parameter. It is not so nice to have only a double value which can be handled so differently, but I think it is still the most practical way to represent planar and polar depth maps in the same type. Using c++11 it would also be possible to have an union of a base::Angle and a double.

Also I'm not sure if we necessarily need the rotation speeds in this type.

Not finished:
* The unit test is incomplete, the planar case is not tested yet.
* The visualizations from the MultilevelLaserScan type should be ported.
* A log conversion from the old to the new type should be written.
Would make sense to remove the speed. In LaserScan it was used to compute the timestamps, which you don't need here.

> And if those members are needed later on, they can be added again.

Changing a base type is difficult. Now, in this particular case, I do agree with you (min/max are useless because of NaN/Inf and if the speed is needed, one can create a method which computes it).