[stdlib] Integer index operations don't overflow
[stdlib] Integer index operations don't overflow

When an integer type T is used as an Index, there are always
bounds---more restrictive than the full range of T---against which we're
not able to check.  Overflows are not useful indicators of precondition
violations in this context.  Therefore, use masked arithmetic for
RandomAccessIndex conformance.

Performance changes of magnitude >= 5% are below.  Someone might want to
investigate why Fibonacci got 21% faster in -Ounchecked, since nothing
in this change should have removed checks from that build.  (That test
does seem particularly sensitive; see also <rdar://problem/17815767>
Adding three overloads to stdlib slows Fibonacci by 18-19%)

Fixes <rdar://problem/17780469> Integer ranges shouldn't use overflowing adds

====================`PrecommitBench_O`====================
````benchmark`|`baserun0`|`baserun1`|`optrun0`|`optrun1`|``delta`|`speedup`
````Ackermann`|``1428.00`|``1466.00`|`1661.00`|`1657.00`|`229.00`|``-13.8%`
`````ForLoops`|``2021.00`|``1986.00`|`1249.00`|`1255.00`|`737.00`|```59.0%`
`````````Hash`|``1038.00`|```979.00`|``898.00`|``922.00`|``81.00`|````9.0%`
`````````Life`|````63.00`|````63.00`|```60.00`|```61.00`|```3.00`|````5.0%`
```````Memset`|````55.00`|````54.00`|```42.00`|```42.00`|``12.00`|```28.6%`
``MonteCarloE`|``1243.00`|``1265.00`|``885.00`|``880.00`|`363.00`|```41.3%`
`MonteCarloPi`|```994.00`|``1004.00`|``613.00`|``605.00`|`389.00`|```64.3%`
````````NBody`|````45.00`|````45.00`|```42.00`|```43.00`|```3.00`|````7.1%`
````QuickSort`|```105.00`|```103.00`|```83.00`|```83.00`|``20.00`|```24.1%`
````R17315246`|``1080.00`|``1080.00`|``805.00`|``808.00`|`275.00`|```34.2%`
``````SmallPT`|``1008.00`|``1007.00`|``789.00`|``795.00`|`218.00`|```27.6%`
````````Walsh`|```136.00`|```136.00`|``129.00`|``130.00`|```7.00`|````5.4%`
====================`PrecommitBench_Ounchecked`====================
````benchmark`|`baserun0`|`baserun1`|`optrun0`|`optrun1`|``delta`|`speedup`
``Dictionary3`|``1060.00`|``1039.00`|``982.00`|`1029.00`|``57.00`|````5.8%`
````Fibonacci`|```842.00`|```848.00`|``694.00`|``694.00`|`148.00`|```21.3%`
```StringWalk`|```945.00`|```924.00`|``989.00`|``995.00`|``65.00`|```-6.6%`
====================`PrecommitBench_Onone`====================
````benchmark`|`baserun0`|`baserun1`|`optrun0`|`optrun1`|``delta`|`speedup`
`EditDistance`|``2086.00`|``1981.00`|`1492.00`|`1622.00`|`489.00`|```32.8%`
`````````Life`|``1256.00`|``1216.00`|`1110.00`|`1142.00`|`106.00`|````9.5%`
```````MatMul`|``1210.00`|``1245.00`|``705.00`|``705.00`|`505.00`|```71.6%`
````R17315246`|```205.00`|```209.00`|``195.00`|``200.00`|``10.00`|````5.1%`

Swift SVN r20576

practicalswift/swift,JGiola/swift,jckarter/swift,devincoughlin/swift,hooman/swift,khizkhiz/swift,jtbandes/swift,apple/swift,swiftix/swift.old,zisko/swift,Jnosh/swift,gmilos/swift,OscarSwanros/swift,kusl/swift,swiftix/swift,gregomni/swift,roambotics/swift,sschiau/swift,glessard/swift,cbrentharris/swift,roambotics/swift,airspeedswift/swift,shajrawi/swift,parkera/swift,russbishop/swift,djwbrown/swift,manavgabhawala/swift,therealbnut/swift,Ivacker/swift,tkremenek/swift,felix91gr/swift,xwu/swift,natecook1000/swift,LeoShimonaka/swift,cbrentharris/swift,practicalswift/swift,adrfer/swift,tardieu/swift,jckarter/swift,djwbrown/swift,kstaring/swift,cbrentharris/swift,lorentey/swift,russbishop/swift,stephentyrone/swift,bitjammer/swift,gmilos/swift,sdulal/swift,danielmartin/swift,kusl/swift,zisko/swift,Ivacker/swift,djwbrown/swift,Ivacker/swift,ben-ng/swift,gottesmm/swift,sschiau/swift,sschiau/swift,nathawes/swift,calebd/swift,gmilos/swift,OscarSwanros/swift,hughbe/swift,lorentey/swift,swiftix/swift,lorentey/swift,gmilos/swift,practicalswift/swift,emilstahl/swift,allevato/swift,modocache/swift,amraboelela/swift,tjw/swift,allevato/swift,codestergit/swift,kstaring/swift,LeoShimonaka/swift,danielmartin/swift,dduan/swift,aschwaighofer/swift,benlangmuir/swift,gribozavr/swift,roambotics/swift,tjw/swift,JaSpa/swift,allevato/swift,airspeedswift/swift,arvedviehweger/swift,MukeshKumarS/Swift,jmgc/swift,SwiftAndroid/swift,brentdax/swift,rudkx/swift,kstaring/swift,johnno1962d/swift,jmgc/swift,shajrawi/swift,sdulal/swift,kperryua/swift,tardieu/swift,therealbnut/swift,swiftix/swift.old,airspeedswift/swift,JaSpa/swift,frootloops/swift,aschwaighofer/swift,SwiftAndroid/swift,JaSpa/swift,CodaFi/swift,gribozavr/swift,huonw/swift,xedin/swift,SwiftAndroid/swift,KrishMunot/swift,jmgc/swift,CodaFi/swift,felix91gr/swift,gottesmm/swift,modocache/swift,tardieu/swift,tinysun212/swift-windows,nathawes/swift,IngmarStein/swift,lorentey/swift,russbishop/swift,emilstahl/swift,gottesmm/swift,MukeshKumarS/Swift,swiftix/swift.old,airspeedswift/swift,jopamer/swift,milseman/swift,devincoughlin/swift,jtbandes/swift,IngmarStein/swift,codestergit/swift,natecook1000/swift,bitjammer/swift,KrishMunot/swift,shajrawi/swift,arvedviehweger/swift,codestergit/swift,arvedviehweger/swift,hooman/swift,benlangmuir/swift,milseman/swift,gregomni/swift,MukeshKumarS/Swift,hooman/swift,SwiftAndroid/swift,harlanhaskins/swift,kstaring/swift,austinzheng/swift,shahmishal/swift,aschwaighofer/swift,parkera/swift,devincoughlin/swift,gribozavr/swift,sschiau/swift,mightydeveloper/swift,uasys/swift,kperryua/swift,nathawes/swift,huonw/swift,tjw/swift,ahoppen/swift,arvedviehweger/swift,rudkx/swift,russbishop/swift,aschwaighofer/swift,rudkx/swift,uasys/swift,dduan/swift,amraboelela/swift,deyton/swift,tjw/swift,jtbandes/swift,ben-ng/swift,benlangmuir/swift,dduan/swift,tinysun212/swift-windows,ahoppen/swift,uasys/swift,Ivacker/swift,shahmishal/swift,swiftix/swift.old,milseman/swift,xedin/swift,therealbnut/swift,LeoShimonaka/swift,apple/swift,IngmarStein/swift,uasys/swift,austinzheng/swift,huonw/swift,airspeedswift/swift,IngmarStein/swift,felix91gr/swift,harlanhaskins/swift,kperryua/swift,calebd/swift,jtbandes/swift,apple/swift,johnno1962d/swift,felix91gr/swift,apple/swift,adrfer/swift,lorentey/swift,alblue/swift,return/swift,jopamer/swift,manavgabhawala/swift,amraboelela/swift,frootloops/swift,kperryua/swift,modocache/swift,amraboelela/swift,xedin/swift,danielmartin/swift,kentya6/swift,karwa/swift,jmgc/swift,xwu/swift,alblue/swift,adrfer/swift,atrick/swift,xedin/swift,modocache/swift,cbrentharris/swift,austinzheng/swift,parkera/swift,emilstahl/swift,swiftix/swift,bitjammer/swift,hughbe/swift,emilstahl/swift,CodaFi/swift,deyton/swift,khizkhiz/swift,manavgabhawala/swift,JaSpa/swift,allevato/swift,codestergit/swift,gribozavr/swift,felix91gr/swift,ben-ng/swift,kusl/swift,Ivacker/swift,nathawes/swift,LeoShimonaka/swift,kperryua/swift,calebd/swift,khizkhiz/swift,JaSpa/swift,austinzheng/swift,zisko/swift,ken0nek/swift,karwa/swift,mightydeveloper/swift,cbrentharris/swift,milseman/swift,IngmarStein/swift,hooman/swift,benlangmuir/swift,harlanhaskins/swift,nathawes/swift,bitjammer/swift,gottesmm/swift,modocache/swift,gmilos/swift,brentdax/swift,rudkx/swift,sdulal/swift,airspeedswift/swift,JaSpa/swift,harlanhaskins/swift,xwu/swift,xwu/swift,frootloops/swift,glessard/swift,JGiola/swift,return/swift,russbishop/swift,LeoShimonaka/swift,kstaring/swift,apple/swift,sdulal/swift,jtbandes/swift,dduan/swift,adrfer/swift,jckarter/swift,devincoughlin/swift,Jnosh/swift,glessard/swift,shajrawi/swift,swiftix/swift,ben-ng/swift,tinysun212/swift-windows,hughbe/swift,shajrawi/swift,xwu/swift,alblue/swift,khizkhiz/swift,CodaFi/swift,felix91gr/swift,jopamer/swift,calebd/swift,natecook1000/swift,slavapestov/swift,manavgabhawala/swift,karwa/swift,mightydeveloper/swift,sschiau/swift,sschiau/swift,Jnosh/swift,OscarSwanros/swift,Ivacker/swift,gregomni/swift,karwa/swift,shahmishal/swift,codestergit/swift,ben-ng/swift,roambotics/swift,stephentyrone/swift,kusl/swift,LeoShimonaka/swift,bitjammer/swift,shajrawi/swift,arvedviehweger/swift,harlanhaskins/swift,ahoppen/swift,JGiola/swift,devincoughlin/swift,slavapestov/swift,stephentyrone/swift,johnno1962d/swift,atrick/swift,deyton/swift,manavgabhawala/swift,nathawes/swift,ahoppen/swift,dduan/swift,harlanhaskins/swift,lorentey/swift,shahmishal/swift,brentdax/swift,mightydeveloper/swift,return/swift,glessard/swift,cbrentharris/swift,tjw/swift,sdulal/swift,natecook1000/swift,dduan/swift,uasys/swift,therealbnut/swift,zisko/swift,shajrawi/swift,tardieu/swift,tkremenek/swift,benlangmuir/swift,sdulal/swift,calebd/swift,cbrentharris/swift,devincoughlin/swift,johnno1962d/swift,dreamsxin/swift,practicalswift/swift,huonw/swift,glessard/swift,johnno1962d/swift,jckarter/swift,swiftix/swift.old,shahmishal/swift,calebd/swift,IngmarStein/swift,gregomni/swift,practicalswift/swift,milseman/swift,xedin/swift,mightydeveloper/swift,huonw/swift,ken0nek/swift,danielmartin/swift,SwiftAndroid/swift,benlangmuir/swift,IngmarStein/swift,djwbrown/swift,karwa/swift,kusl/swift,tardieu/swift,huonw/swift,parkera/swift,codestergit/swift,allevato/swift,OscarSwanros/swift,jtbandes/swift,ben-ng/swift,swiftix/swift,slavapestov/swift,MukeshKumarS/Swift,russbishop/swift,johnno1962d/swift,jopamer/swift,kentya6/swift,harlanhaskins/swift,jckarter/swift,kusl/swift,austinzheng/swift,sdulal/swift,gregomni/swift,hooman/swift,atrick/swift,ahoppen/swift,rudkx/swift,jtbandes/swift,lorentey/swift,KrishMunot/swift,deyton/swift,CodaFi/swift,JGiola/swift,zisko/swift,xedin/swift,kentya6/swift,mightydeveloper/swift,brentdax/swift,alblue/swift,gottesmm/swift,lorentey/swift,milseman/swift,swiftix/swift,emilstahl/swift,parkera/swift,shahmishal/swift,LeoShimonaka/swift,felix91gr/swift,KrishMunot/swift,aschwaighofer/swift,deyton/swift,calebd/swift,swiftix/swift.old,return/swift,amraboelela/swift,djwbrown/swift,frootloops/swift,KrishMunot/swift,frootloops/swift,deyton/swift,aschwaighofer/swift,nathawes/swift,tkremenek/swift,return/swift,jckarter/swift,hughbe/swift,slavapestov/swift,karwa/swift,uasys/swift,tardieu/swift,tkremenek/swift,LeoShimonaka/swift,tinysun212/swift-windows,manavgabhawala/swift,Jnosh/swift,shahmishal/swift,kentya6/swift,alblue/swift,emilstahl/swift,tkremenek/swift,arvedviehweger/swift,kstaring/swift,danielmartin/swift,austinzheng/swift,hughbe/swift,slavapestov/swift,return/swift,manavgabhawala/swift,modocache/swift,tjw/swift,glessard/swift,jckarter/swift,return/swift,stephentyrone/swift,Jnosh/swift,hughbe/swift,slavapestov/swift,jopamer/swift,kperryua/swift,stephentyrone/swift,johnno1962d/swift,karwa/swift,dreamsxin/swift,CodaFi/swift,shajrawi/swift,cbrentharris/swift,hooman/swift,allevato/swift,Jnosh/swift,bitjammer/swift,devincoughlin/swift,amraboelela/swift,slavapestov/swift,jmgc/swift,roambotics/swift,ken0nek/swift,stephentyrone/swift,kentya6/swift,uasys/swift,KrishMunot/swift,djwbrown/swift,austinzheng/swift,deyton/swift,karwa/swift,jmgc/swift,swiftix/swift.old,frootloops/swift,danielmartin/swift,stephentyrone/swift,MukeshKumarS/Swift,emilstahl/swift,tardieu/swift,Ivacker/swift,gribozavr/swift,MukeshKumarS/Swift,allevato/swift,JGiola/swift,jopamer/swift,brentdax/swift,xedin/swift,roambotics/swift,ken0nek/swift,practicalswift/swift,Ivacker/swift,OscarSwanros/swift,apple/swift,atrick/swift,sdulal/swift,mightydeveloper/swift,emilstahl/swift,tinysun212/swift-windows,kusl/swift,OscarSwanros/swift,amraboelela/swift,zisko/swift,gribozavr/swift,danielmartin/swift,tinysun212/swift-windows,huonw/swift,gottesmm/swift,tinysun212/swift-windows,kstaring/swift,mightydeveloper/swift,alblue/swift,kusl/swift,jopamer/swift,JGiola/swift,khizkhiz/swift,gmilos/swift,swiftix/swift,kperryua/swift,tkremenek/swift,ken0nek/swift,JaSpa/swift,hooman/swift,devincoughlin/swift,SwiftAndroid/swift,OscarSwanros/swift,natecook1000/swift,arvedviehweger/swift,ahoppen/swift,shahmishal/swift,xedin/swift,gregomni/swift,kentya6/swift,brentdax/swift,adrfer/swift,gottesmm/swift,tjw/swift,ken0nek/swift,hughbe/swift,xwu/swift,swiftix/swift.old,adrfer/swift,alblue/swift,sschiau/swift,khizkhiz/swift,dduan/swift,CodaFi/swift,airspeedswift/swift,codestergit/swift,frootloops/swift,parkera/swift,jmgc/swift,adrfer/swift,therealbnut/swift,modocache/swift,rudkx/swift,gribozavr/swift,practicalswift/swift,parkera/swift,atrick/swift,kentya6/swift,ken0nek/swift,natecook1000/swift,brentdax/swift,tkremenek/swift,therealbnut/swift,practicalswift/swift,aschwaighofer/swift,bitjammer/swift,parkera/swift,kentya6/swift,atrick/swift,MukeshKumarS/Swift,gribozavr/swift,gmilos/swift,sschiau/swift,djwbrown/swift,xwu/swift,khizkhiz/swift,KrishMunot/swift,milseman/swift,SwiftAndroid/swift,ben-ng/swift,zisko/swift,Jnosh/swift,natecook1000/swift,russbishop/swift,therealbnut/swift