Added a boost.variant based AST for grammars

Signed-off-by: Collin Baker <chbaker0@gmail.com>