renamed node structs to make room for simpler ones

token_span, unary_span, num_span, pow_span and var_span need
begin and end span as arguments. needed for error messages.

token_node, num_leaf and pow_node dont need span args.
needed later for deriv()
added deriv() and build(), everything working now.