Add forward range capability to AA .byKey and .byValue

Split off and rebased from https://github.com/D-Programming-Language/druntime/pull/574