Implement types class hierarchy

Class hierarchy of all NesC types is implemented and added. It contains classes
for the C types, e.g. 'int' or a structure and artificial types for NesC
objects such as interfaces and components.
Add pretty printing for types classes

Objects of classes that represent types can now return their textual
representation in a pretty format. 'toString' method is responsible for that.
Moreover, the hierarchy now supports the Visitor design pattern.
Prepare for saving full information about tags

Classes whose objects depict structures and unions in the symbol table are
prepared to carry information about fields from them.
Add type resolving for the most common declarations

Definitions of structures and unions are now fully analyzed and information
about their fields is stored in the symbol table. Moreover, type resolving is
added for variables, functions parameters, forward declarations and fields.
The type is not yet stored in the symbol table (except for fields).