Implement AA .byPair forward range

Fixes issue 9119.

This pull also adds forward range capability to byKey and byValue, since byPair already provides that functionality. Exporting a forward range API makes AA's usable with many more Phobos algorithms, and costs almost nothing.