Makes the sub-interfaces of StatementContext speak for themselves and lets
all implementations of (previously) CompositeStatementContext to go with
one or more sub-interfaces instead. This will have the benefit of having
the cake deflated, i.e. no delegates delegating to pure delegates, but
only delegations between actual implementations.

At the moment this incurs a higher cost when creating the statement
context, but much lower when interacting with the context. The next step
will probably be to reduce the amount of statement contexts we create.
Merge pull request #926 from tinwelint/2.0-perf-kill-composite-stmtctx

Deflation and splitting of StatementContext