Return a ParsedResult class instead of raw AST node

This allows us to set additional properties on the result
object without adding per-AST node specific attributes that would
only exist on the root node.  The only one I've added for now
is "expression", which lets a user get the original expression
associated with the parsed value.


cc @toastdriven