Added type checking for conditions in a conditional.
Made some more refactorings, removed some unnecessary super classes in preparation of identifier type checking. Also added a test which assures the grammer is not affected by the dangling else problem.