Fits and Tolerances: How to Design Stuff that Fits Together