RFC: Single-entry / multiple-exit regions for borrows

[Rendered](https://github.com/zwarich/rfcs/blob/seme-regions/active/0000-seme-regions.md)
I'm not sure the *actual* problem is presented properly, maybe @nikomatsakis could confirm this, but my intuition is that the auto-borrow of an **lvalue** receiver can be delayed to after the evaluation of the arguments, without breaking backwards compatibility or creating unsoundness.