Added expect_raises macros and use them in specs. Also make assert_syntax_error create a spec with "it" (more concise)
Smarter parsing of macro bodies
Put restriction in to_s(io : IO) and reverted Int#to_s_in_base(radix) to Int#to_s(radix : Int)
Add IO restrictions in `to_s(io)` for std classes
Removed patch info from release version (we won't use that for now)
Automatic conversion of generic struct wrapper to C value
Small simplification in lexer macro, now that macros parse better
Allow implicit conversion to C types by defining a `to_unsafe` method. This removed the hardcoded rule for converting a `String` to `UInt8*` and also allows passing an `Array(T)` to an argument expecting `Pointer(T)`.
Don't go to metaclass when typing is_a? type. Fixes #162
Date: simplify code

Now that issue #162 is fixed, we can refactor to simplify the code.