Do not try to optimize non-boolean guards

Expressions such as erlang:'or'(bar, true) can make beam_bool crash if it tries
to optimize them, as this code is not quite really written by users, no attempt
to rewrite them more efficiently should be done, for simplicity's sake.

Reported-by: Ulf Norell
Compile BIF calls and operator expressions to Core the same way

Previously, erlang:'or'(X, Y) and X or Y were not compiled to the same
Core code.