Introduce RefactoringContext.

Refactorings should be aware not just of the AST they're operating on,
but also some extra context (for now the MatlabProgram they're operating
on, and the Project it belongs to).

This is a fairly big change, and some of it is iffy just to make things
build. In particular,

* ExtractFunction needs to be looked at, in particular
  checkPreconditions()
* One RenameVariableTest regarding global variables was commented out,
  and will be fixed soon
Fix failing RenameVariable test.