AST: added NilExpr
AST: moved Package* from IdentifierExpr -> Decl
AST: added VarDeclKind to distinguish between global/local/attribute/member vardecls
Analyser: checking struct/array initialization values (partly)
Analyser: symbol lookup refactor

- Scopes have been extracted from FunctionAnalyser to Scope.cpp
- ScopeResult.external/visible have been removed (handles by Scope)
- added caching of local and global var lookups
- fixed issue with faulty redefinition error
- cleanup of lookup code