Continued to Construct Typechecker - Introduced Sum Types

Also fixed some inconsistencies across Product Types, and implemented
Decomposition of binders. Next Stop: Type Inference for application,
Then Type inference for Abstraction.

Continued to Elaborate Testcases