Convert E_RECOVERABLE_ERROR into RuntimeException
Summary:
We currently treat typehint violations as warnings in normal use, and only raise InvalidArgumentException via assert_instances_of(). Instead, always raise InvalidArgumentException.
E_RECOVERABLE_ERRORs are always severe; raise them all as runtime errors.
Raise "use of undefined variable" as a runtime error, it is highly correlated with badness.
Test Plan: Ran a program with undefined variables and typehint problems.
Reviewers: vrana, btrahan
Reviewed By: vrana
CC: aran
Differential Revision: https://secure.phabricator.com/D2653