AST changes to prepare for API annotations

Summary: Add locations to parts of the AST so that API annotations can
then be added.

The outline of the whole process is captured here
https://ghc.haskell.org/trac/ghc/wiki/GhcAstAnnotations

Test Plan: sh ./validate

Reviewers:

Subscribers:

GHC Trac Issues: #9628
Lint fixes
Merge remote-tracking branch 'alanz/wip/ast-prepare-annotations' into wip/ast-prepare-annotations

Conflicts:
	compiler/parser/Parser.y.pp