Consolidating forward range requirements

Because returning anything other than an *exact* type match messes everything up. This is particularly true in the sense that "saved" ranges are usually passed directly to a function, so not cast back to the original.
Fixes Issue 8837 - BigInt needs better operator constraints.
Merge pull request #1112 from AndrejMitrovic/Fix8837

Issue 8837 - BigInt needs better operator constraints.
Merge pull request #1008 from monarchdodra/save

Consolidating forward range requirements