Added modulo operator `%`

The modulo operator doesn't currently have an inverse because patterns like `Number::%[@x, 2]` or are `Number::%[9, @x]` are not very useful.