Better handling of "self" type restrictions with typedef types.
Comparable is now a generic module
Fixed: union type was incorrectly calculated
Be able to compare tuples even if they have different lengths
Fixed Float#ceil
Allow to specify a fun name with a string literal
Define an Intrinsics lib with some functions provided by llvm. Make Float32#**, Float64#**, Math#sqrt(Float32) and Math#sqrt(Float64) are now implemented with these intrinsics instead of being primitives
Added more llvm intrinsics and use them in Math instead of libm functions
Use llvm intrinsic for Pointer#memcpy and Pointer#memmove
Use libc memcmp for Pointer#memcmp
Avoid C calls that deal with strings (our strings can have the zero byte)