Varargs

Adding support for signatures with optional arguments, using intersection types. See 

tests/pos/misc/vararg-0{2,3}.ts

Major changes: 

 (Most) TC errors are wrapped in a DEAD-CAST which translates to an ASSERT-FALSE constraint.

@panagosg7 : don't merge yet, I want to run some tests that perform dynamic checks on `arguments.length`