Add internal option for gear()

This option allows for the generation of internal spur gears. Internal mode
adapts the meanings of several options for use on internal gears:
 - backlash is negated for larger teeth, as we're subtracting the gear from a
   cylinder.

 - clearance is added to the addendum instead of dedendum, which
   pushes out the outer circle instead of pushing in the root circle.

 - rim_width is added to outer_radius in order to get the containing cylinder's
   radius.

 - flat renders the gear shape in 2d, ready for extrusion and subtraction.