Ps compiler bool

Optimizations to reduce the amount of Boolean_fn.Boolean being called. Moved those casts into ImpliedPlayScriptConversion and they are only done if the source type is not a Class or Interface.

Reduced the amount of coalescing operators so that if (a || b || c) will not have to generate a chain of conditionals but simply a chain of logical ORs. This is done only inside of a BooleanExpression, so that x = (a || b || c) will still work as expected.