Properly detect reused boolean values in beam_bool

The following code could crash the compiler:

	f(X = true) when X or true or X -> ok.

Reported-by: Ulf Norell
Properly handle redundant boolean clauses in sys_core_fold

Boolean case expressions with redundant clauses could make the compiler
crash:

    case X == 0 of
        false -> no;
        false -> no;
        true -> yes
    end.

Reported-by: Ulf Norell
cerl_inline: Fix type error

b08ffc15e1d9ad105dd6385bbac41c97c09b48bc corrected a bug,
but violated the types by passing a c_apply() when a
c_let() was expected. That happened to work, but Dialyzer
was not amused.
Merge branch 'nox/compiler/v3_core-mismatched-apply'

* nox/compiler/v3_core-mismatched-apply:
  cerl_inline: Fix type error
Merge branch 'nox/compiler/sys_core_fold-redundant-clauses'

* nox/compiler/sys_core_fold-redundant-clauses:
  Properly handle redundant boolean clauses in sys_core_fold
Merge branch 'nox/compiler/beam_bool-mixed-boolean'

* nox/compiler/beam_bool-mixed-boolean:
  Properly detect reused boolean values in beam_bool
Update primary bootstrap