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
this is maybe a little nitpicky -- but this number is not actually number_of_cells yet (until multiplied by scale). I would suggest fixing these lines (3 of them, plus 6 calls to bresenham functions) to do the multiplication by scale here (and also make them unsigned int to begin with). Long term, this should avoid people potentially changing one line below and not the others.