Pass a 'flags' argument down through the Parser.

This will let us implement predicates like caller() and callee() sensibly. We don't have any implementation for Flags yet, but we pass it around correctly.
Properly specify callee vs caller context.

Provide __tesla_callee() and __tesla_caller() predicates, which make their sub-trees use either callee- or caller-context function instrumentation. There is no problem with constructs like 'callee(foo, caller(bar, callee(baz)))'.