Made typecheckvisitor abstract.
Implemented compatibility checks between types.
Override toString in Type classes to get their name.
Else/Elseif/Elseifs now subtype of statement.
Implemented operations in types.
Updated todo