Builder cleanup

This pull request:

1. Switches from a huge list of builder options to a single options record (now in a new module).
2. Switches from `cryptohash` to `hashable`.
3. A bit of other miscellaneous cleanup.

I have confirmed that this builds successfully with both the released and HEAD versions of `-core` and `-lib`.