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

I don't understand this? Why is it only once-callable if it escapes? It seems that the following works fine with our current closure scheme:

```rust
fn foo<'a, T: Clone>(x: &'a T) -> impl Fn<(), T> + 'a {
     |&:| (*x).clone()
}
```

(Using abstract return types.)