Implement AA byPair.

Resurrected from https://github.com/D-Programming-Language/druntime/pull/574.

The basic idea is to provide this functionality in druntime, and if people insist, add a wrapper to Phobos that returns `Tuple`s as people clamored for last time. Or just recommend users add this one-liner wrapper to their own code:
````
auto r = aa.byPair().map!(a => tuple(a.key, a.value));
````
then you'll a `Tuple` range out of it for no extra charge. :-)
This is much better, yes. However, it fails the requirement that `is(typeof(aa.byPair().front[0]) == Key)` because the type will be `Key*` now. :-(