costmap_2d plugins obstacle_layer and voxel_layer use footprint_layer

to clear the robot's footprint within their internal layer before merging onto the master costmap.

This was previously implemented specifically in voxel_with_footprint_layer.cpp but we have since realized that every voxel or obstacle layer will always need this, so I'm baking it into those classes directly.

A later commit will remove the voxel_with_footprint_layer class after references to it have been converted to regular voxel_layers.