Renamed primitive functions to builtin functions
Refactored the primitive lookup in compiler

It now uses the same lookup method as any other function, making the compiler simpler and error messages are more coherent
Removed the workaround for adding instance dictionaries in compiler.rs

Since 'find' no longer borrows the Compiler through self it is possible to do the constraint handling in a function with &mut self
Added OpApply to the module::Expr enum

OpApply is used when parsing operator expressions
Added fixity declarations + functions to order binary expressions correctly

Added function to do do fixup on operator expressions after parsing

This is leading into the addition of fixity declarations. Fixity declarations can appear after an operator has been used so operator precedence cannot in general be calculated until after parsing is complete.

- Added OpApply to the Show implementation for module::Expr

- Added fixity declarations to module::Module and to the parser
Added a Paren constructor to module::Expr

Paren is used for expressions in parentheses to disambiguate 3 * 4 + 5 from 3 * (4 + 5) when rewriting the operator expressions.