Extend analysis of expressions

Analysis for the following types of expressions is added:
   * ternary operators: ?:
   * binary operators: = += -= *= /= %= &= |= ^= <<= >>=
   * unary operators: ++ -- & *
   * cast expression
   * comma expression
   * array reference
   * function call
   * field reference
Add setting type in AST nodes of expressions

Types of expressions determined during the analysis are now being saved to
their AST nodes. Moreover, the declaration object for an identifier that occurs
in an expression is being set in its AST node.
Add handling of NesC constant functions during analysis

NesC constant functions "unique", "uniqueN" and "uniqueCount" are added to the
translation environment for loaded files and hence are visible during the
semantic analysis. Now, undeclared identifier errors are not reported when
using these functions.