Introduced Casted Expressions into the Lambda Language

With this extensions, programs with casts actually typecheck both in the
source language and in the LAMBDA intermediate language. Now, it is a
matter of time before making the right optimizations to optimize-out the
casts into standard if expressions that will fail miserably when there
is a cast inconsistency at runtime.
 Added a CastError exception. Commented out cast removal operation hoping I can do something about regions now.
Extracted the cast semantics into a separate file, CastConversions