Adding some type aliases.
Restructuring the parser.

  - The parser does not hide annotations in expressions anymore. Instead it adds
    them in the state which gets returned along with the program in a mapping
    from SourceSpan to the type of the annotations.

  - So far the parser only works for VarDecls, as so:

    var v /*: <type> */ = e;
The external parser needs the current state as arg
Importing catMaybe
External parser should take care of comments sym.
Update the comment-annotation character.
Update ParserState with external parser.
Parse func. stmt. spec and top-level annotations.

  - withFreshLabelStack needs to operate just on the label portion.
Adding getAnnotation to Id
Adding some comments to Parser.Type
Changed SourceSpan returned for VarDecl annot

  - It is now the Id being defined.
Backwards compatibility
Adding support for annots before VarDeclStmt

  - Also external parsers do not parse the comment symbols anymore.
Merge pull request #6 from panagosg7/annotation_support

Annotation support