Fix compiler abstract code

This makes the abstract code valid and ensures dialyzer works when a function clashes with an auto imported bif.

A PR should be done to OTP so that dialyzer reads the `options` from the `compile_info` chunk of a beam and uses them when creating core from a beam.