TC-C, Combine language extensions

TC-C is an additional assignment.

At the end of this stage, the compiler must be able to process function overloading and objects when used together. Various options are provided to freely combine Tiger language extensions, such as --c-all to activate all extensions and --combine-desugar to desugar enabled extensions to core Tiger.