Add checking the second parameter of 'uniqueN'

It is now checked if values provided for the second parameter of 'uniqueN'
constant function are correct. Currently only integer and character constants
are supported.
Implement evaluation of constant functions

Evaluation of compile-time NesC constant functions ('unique', 'uniqueN' and
'uniqueCount') is implemented. Objects responsible for it store computed values
in AST nodes of calls to these functions. Moreover, the substitution of generic
parameters is modified not to create new AST nodes of calls to the constant
functions. It causes that every usage of 'unique', 'uniqueN' or 'uniqueCount'
will be evaluated exactly once.
Add generating a generic traverse method for AST nodes

Each AST node has a new method 'traverse' that makes a visitor visit all nodes
that constitute the AST node (including itself). Moreover, values processor and
counts processor are changed to use this method.
Add handling of @C() attribute

It is checked if the usage of @C() attribute is correct. If not, an error is
reported. Moreover, names of all global entities and entities marked by @C()
attribute are collected for the operation of finalizing names mangling. A map
with gathered names from the entire application is accessible by
a 'ProjectData' object.
Check references to constants from other components

The correctness of references to enumerations constants from other components
is checked. All detected errors are reported.
Enhance checking correctness of declarations

Declarations of functions are now correctly recognized. Moreover, locations of
commands, events and tasks declarations are checked and all detected errors are
reported.