Added desugaring of `box (<place_expr>) <value_expr>` into a protocol with a Placer instance.

checkpoint newest attempt at `box (<place>) <value>` sugar.

This version seems to be able to bootstrap rustc.
Then it breaks on the following cfail tests:

failures:
    [compile-fail] compile-fail/check-static-values-constraints.rs
    [compile-fail] compile-fail/dst-rvalue.rs
    [compile-fail] compile-fail/issue-14084.rs
    [compile-fail] compile-fail/issue-17441.rs
    [compile-fail] compile-fail/issue-7364.rs
    [compile-fail] compile-fail/lint-owned-heap-memory.rs
    [compile-fail] compile-fail/static-mut-not-constant.rs