Initial POC for a parallel annotation structure

Summary:
This is a proof of concept implementation of a completely
separate annotation structure, populated in the parser,and tied to the
AST by means of a virtual "node-key" comprising the surrounding
SrcSpan and a value derived from the specific constructor used for the
node.

See https://ghc.haskell.org/trac/ghc/wiki/GhcAstAnnotations

Test Plan: sh ./validate

Reviewers: simonpj, austin

Subscribers: simonmar, ezyang, carter, thomie

Differential Revision: https://phabricator.haskell.org/D297

GHC Trac Issues: #9628
Work in feedback from Neil Mitchell