Fix #630: Boolean.booleanValue() does not fail on null.
Fix #632: Everything but null should be a java.lang.Object.
Fix #631: Values returned from JS interop should be asInstanceOf'ed.

Nothing guarantees that facade types are accurate, so a value
returned from a call to a facade type method should be
asInstanceOf'ed to ensure that it conforms to the expected type.
Merge pull request #633 from sjrd/typecheck-fixes

Several fixes to bugs discovered through the IR type checker