Implement a hierarchy describing context

* Context hierarchy
** :ctx/return
   An expression in the tail position

** :ctx/statement
   An expression who's value is ignored

** :ctx/expr
   Any other expression type

*** :ctx.invoke/param
   An expression which is a function call parameter

*** :ctx.invoke/target
   An expression which is a function call target
large hands not enough coffee can't type
transition :statement and :return
Merge remote-tracking branch 'origin/feature/expression-context'
update tests for new :context