add type rules for not
add function pointers syntax, namebinding and type rules
remove type wrapper and use properties to store modifiers
fix namebinding for field and fieldViaPointer access