Add syntax to act on state from previous parsers

Use the `>' combinator to run a function that will be passed all the
effects from parser results up the pipeline

example:

This will store the results from the first and second (number() ^ int)
into a tuple

	>>> ((number() ^ int) >> space() >> (number() ^ int) > tuple) << '1 12'
	[('1 12', '', [(1, 12)])]