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. :-)
Yes, this is ugly. But it won't be when we can return tuples from functions (I hope?)