Variables declarations are now read into a VariableDeclaration block which is then parsed at runtime.
Added ReadOnlyBlock to denote blocks which cannot have subblocks nor variables.
Other fixes and improvements.