ivory backend: put some spaces between compilation units.
format wibble.
ivory-opts: use rem rather than mod to match C99 % semantics.
ivory: refactor indexes.
 * make toIx polymorphic: will take any signed/unsigned int.
 * Make explicit AST expression for Ix.
 * Implement constant folding for Ix.
 * New semantics for arithmetic over Ix: do arithmetic on the unwrapped
   value, only taking a remainder at the end.  This (1) simplifies
   expressions since you don't have redundant % operations, and (2) it
   allows one to write for (n :: Ix n), for a loop from 0 to (n-1).
   Before, this results in an expression like

     (n % n - 1 % n) % n

   as the loop bound, which is == -1.  Now we have

     (n - 1) % n

   which gives the correct semantics.
ivory language: break assert stuff into it's own module.
ivory-language: comment remainder opreators.