about to make large changes in the context.
seems that i've fixed mfp up to a reasonable extend, where the contexts now work and information is passed along just fine. however, some conceptual issues remain:

1.
  the information from the call-site is passed along unchanged, should we allow/require all analyses to implement a transfer functions for call primitives as well?
  if we do this, then we'll allow the analysis of parameter passing as something other that just variable assignment. furthermore, we'll allow for the computed
  parameters to be passed past the function body (which is something we want).
  this furthermore allows for a generalization where we don't have to do the function entry/exit anymore, but just have an extension over the basic transfer
  function (that handles the context).

2.
  should the implementation of the return primitive f2 really be the lattice join? don't we want to preserve more information? or is it that we cannot do so,
  lest we start erring on the unsafe side?

Signed-off-by: Pepijn Kokke <pepijn.kokke@gmail.com>