initial ratio support

again (very) directly inspired by clojure's implementation.
add missing assert for integer _div
implement ratio _add
fix divide by zero check
support ratio literals
fix compilation
implement remaining math functions for ratio

not yet for ratio with other types, though. it's a bit tricky as we
could just convert the arguments to ratios and then use the existing
functions, but there are exceptions when floats are involved.

maybe that's already it?
generate ratio ops with one integer arg
generate ratio ops with one float arg
add _num_eq for ratios

not sure about comparing ratios to floats, but i think it's ok.
extend -eq to floats and ratios
fix merge
merge with master
remove failing test