RFC: Split the `||` unboxed closure form into two forms and remove the capture clauses and self type specifiers

And, even something like

```rust
fn foo<T: Clone>(x: T) -> impl Fn<(), T> {
    |&:| x.clone()
}
```

can be called multiple times, despite moving `x` into the closure.