Added primitives to compare integers
Added tests for a basic Prelude.hs
Fixed constructors not being able to hold List a, b -> c, etc
Added a location to the type errors when possible
Merge branch 'master' into prelude

Conflicts:
	parser.rs
Added Types trait

Types implements a single method, find_type which can be used to lookup a type by name
Rewrote the typechecking to work without shared pointers

It is largely based on https://github.com/wh5a/Algorithm-W-Step-By-Step
Search through all "assemblies" when looking up names as well
Fixed bug when inferring type for id (0 :: Int)

id has the type (a -> a) which when unified would give a => Int but as only the argument is known to be Int, when unifying the return type the a => Int substitution would be replaced by a => a1. By applying the substitution before entering the next TypeOperator this is avoided.
The compiler can lookup functions in other assemblies
Fixed the parser being unable to parse repeated infix applications
Added test for running modules with imported functions

One fix to make sure the globalIndex is correct when compiling