Moved Match to CaseTree transformation out of STG into CaseTree, since it is STG agnostic.
Introduced MonadProgram for monads that act as readers on a program.