General code cleanup.
Missing includes.
Forgot to remove those.
Fixed some compile issues with ICC. To workaround the compiler bug described in http://software.intel.com/en-us/forums/topic/501502 the order of FunctionNode ctor args had to be changed.
ICC could not generate default ctor here.
Merged operators match binary arithmetic and comparison operators. Return type is now based on resulting expression rather than using type of lhs.