* Parser::Diagnostic: expose reason symbolically (closes #115, #116).
Extract diagnostic messages dictionary into its own file (closes #117).