Added a type hierarchy.
Lvalues, dereference, addressof and subscript operators.
Implemented array and pointer declarators for variables.
Implemented array/pointer variables, expression types, improved handling
of multidimensional arrays and added some of the type checks for operators.
Merge branch 'master' into ptrarray

Conflicts:
	TitoCC/src/titocc/compiler/elements/BinaryExpression.java
Updated tests and some bugfixes.
Tests for array/pointer declarations and subscript expressions.
Type checks for binary expressions, assignment expressions, argument lists
and initializers.
Return value type checking.
Type checks for if/while and compileAsVoid removed. (No longer needed
because type checks are done everywhere.)
Merge branch 'master' into ptrarray

Conflicts:
	TitoCC/src/titocc/compiler/elements/Function.java
Tests and fixes for pointer arithmetic.
Do array to pointer decay explicitly.
Tests for Types.
Tests for type check error messages and some fixes.
Bugfix: assignment expression was overwriting used registers.
Added more test source files.
Javadocs for all the stuff changed in this branch.