Efficiency improvements and customizable occupancy 2D map projection.

+ Efficiency improvements:
|- avoid transforming clouds already in map frame (added additional
parameter to specify sensor frame_id for calculating sensor pose)
|- create occupancy cloud directly as ros message instead of pcl cloud
(avoids conversion)

+ Projection of nav_msgs::OccupancyGrid with customizable height and
initialization as free or unknown.

+ Increased tf listener buffer to 30 sec.
If I start the code as it is and my points are already in the map frame (e.g., static sensor), then your PR will in the best case end up with a different result (if the param is set) and by default (param not set) will break since the TF listener looks up the empty frame `""`.