Adding CodeGenerator class. For now, it can only generate IR for a core part of the language