Modulo for Fix8 and Fix64

Fix64 modulo has some weird edge cases where it's inacceptably
inaccurate, see
http://stackoverflow.com/questions/14271707/fixed-point-modulo-edge-cases