Convert BaseBoltPart base class to NutSizesMixin.
Make HexNut's extra params named params.
Make Bolt's extra params named params.
Make Bolt.render use new named params, and do so correctly.
Align Bolt head correctly.
Add with_head option for Bolt.
Use named params in gears module.
Call Math functions as Math. instead of Math::
Add TODO comment about gear options.
Don't modify passed opts hash in Gear initialize methods.
Reimplement HerringboneGear using a HelicalGear with negative twist.

This is an attempt to avoid bugs that are probably related to the
mirror transformation.