Add some basic loading and wrangling of Gear specification.

This is some nasty stuff but its easiest way to give me both a concrete
schema but also a little flexibility with how the configuration language
is defined.
Spruce up some documentation for YARD.
Refactor a little bit and add loading to Chaindrive.

The actual file loading only needs to happen in a single place.