Account for untyped types in IsRepresentable.

Also fixed two bugs:
1) Floats and complexes can represent runes, which are just ints anyway.
2) Integers can represent floats and complexes that are just integers.
Remove RuneLiteral, use IntegerLiteral instead.

The rune type is an alias for int32. Rune literals behave the same as
integer literals. Having a distinct AST node for RuneLiteral simply
creates extra, unnecessary cases.
Start UnaryOp.Check.