Revert "2d version should be foremost in implementing a 2d concept"

This reverts commit 4381fa6205769960a8b65286cd1b01419378c550.

We already have a flat option for this. Do not add another option to do the
exact same thing.
Use circles for root rounding in gear()

Instead of poking holes on the extruded object with cylinders, do this using 2d
circles on the gear_shape instead. This allows root circle rounding to work on
flat (2d) and helical gears.
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.
Increase extrusion twist to compensate for extra thickness in internal gears

We extend make the internal gear a bit thicker to avoid problems with
difference(), so we need to adjust twist accordingly or gears won't mesh.
Fix meshing of test gears