Simplifies Let and FunctionInvocation to let expressions be replaced in the body or in the function. Moves canMakeStep to TutorWorker. Adds type to Let in ScalaPrinter. Could cause problems when the expression was executed