Implement true rationals
Rationals were already supported, but their input syntax was the same as for reals: Decimal fixed point notation. This is now fixed and the functor X^- allows weights to be written as either integers or ratios of integers, separated by a slash.