Annotation support

Changes to accommodate annotations in variable declarations, function definitions and the top-level.