Accurate Bresenham raytracing implementation and clearing for corner cases

Changes / fixes clearing with Bresenham raytracing using a more accurate version
Adds parameters for accuracy settings
Adds parameter for including corner cases into clearing

See also https://github.com/ros-planning/navigation/issues/267

Implementation based on: http://graphics.idav.ucdavis.edu/education/GraphicsNotes/CAGDNotes/Bresenhams-Algorithm.pdf
It is used with and without multiplying by scale, but after looking at it again it doesn't really make sense:
It is later used with min() and scale has to be between 0 and 1. So I'll just multiply it always with scale.
(The hole thing should be already done way before here imho, but maybe in a later patch)