Add the type and constraints to the type declaration of bindings
Removed the variables field on the compiler

Variables are extracted from the compiled module directly, this is a linear search currently.
Borrow the types when compiling instead of cloning
Fixed dead_code warnings
Added comments
Changed instructions to use uint instead of int for consistency
Moved the VM code to vm.rs and added modules for all the tests
Minor cleanup
Added classes and data definitions to the type and variable lookup
Fixed the line counting
Added a location in makeLambda and makeApplication functions
Instantiate fresh type variables before typechecking and typecheck against declarations
Added parsing of rationals (floats) and added Rational enum variant
Changed literal numbers to be of type Num a => a

Working except for test_typeclasses_known_types and test_typeclasses_unknown which are not getting their correct types for the instance functions (should be more specialized due to the instance constraint
Add functions in instances to the typechecking

Also fixed some tests where Ints where excpected
Added primitives for working with doubles (f64)
Number literals can be compiled as doubles
Fixed runtime errors complaining about no dictionary being found