bike: Add support for failing calculators. Move more logic out of definitionsRun() and into parameter functions.
Bike.calculateBikeCenter(): start from bottomBracket, it's more likely to be defined than gravitySpot. Sanity test it anyway.