Binary: Make lazyGet more thread-safe
Binary: Make lazyGet more thread-safe

All values read lazily from the same BinHandle share the same mutable
offset variable (_off_r). If two such lazy values are simultaneously
evaluated, the two threads will step over each other when writing to
_off_r.

Fortunately, for BinMem handles, making lazyGet thread-safe is simple:
just use a fresh off_r variable when deferring the call to getAt.

For BinIO handles, a race condition still exists because IO handles
contain their own mutable file pointer variable that gets clobbered in a
similar way that _off_r would. But GHC doesn't use BinIO handles anywhere
so this particular issue could be ignored for now.

gridaphobe/ghc,ghc-android/ghc,frantisekfarka/ghc-dsi,hferreiro/replay,vikraman/ghc,oldmanmike/ghc,urbanslug/ghc,mettekou/ghc,urbanslug/ghc,tjakway/ghcjvm,spacekitteh/smcghc,hferreiro/replay,TomMD/ghc,nathyong/microghc-ghc,mfine/ghc,lukexi/ghc-7.8-arm64,acowley/ghc,siddhanathan/ghc,lukexi/ghc-7.8-arm64,ezyang/ghc,ghc-android/ghc,frantisekfarka/ghc-dsi,gcampax/ghc,ghc-android/ghc,AlexanderPankiv/ghc,forked-upstream-packages-for-ghcjs/ghc,vikraman/ghc,TomMD/ghc,tjakway/ghcjvm,gridaphobe/ghc,elieux/ghc,acowley/ghc,gcampax/ghc,nushio3/ghc,GaloisInc/halvm-ghc,sdiehl/ghc,siddhanathan/ghc,hferreiro/replay,sdiehl/ghc,mfine/ghc,holzensp/ghc,nkaretnikov/ghc,jstolarek/ghc,mettekou/ghc,urbanslug/ghc,oldmanmike/ghc,AlexanderPankiv/ghc,wxwxwwxxx/ghc,lukexi/ghc,gcampax/ghc,shlevy/ghc,green-haskell/ghc,sdiehl/ghc,olsner/ghc,hferreiro/replay,snoyberg/ghc,da-x/ghc,nushio3/ghc,ml9951/ghc,ml9951/ghc,ryantm/ghc,hferreiro/replay,spacekitteh/smcghc,bitemyapp/ghc,christiaanb/ghc,forked-upstream-packages-for-ghcjs/ghc,tibbe/ghc,nathyong/microghc-ghc,mettekou/ghc,GaloisInc/halvm-ghc,AlexanderPankiv/ghc,ezyang/ghc,da-x/ghc,nathyong/microghc-ghc,ml9951/ghc,elieux/ghc,sdiehl/ghc,shlevy/ghc,mcschroeder/ghc,lukexi/ghc,anton-dessiatov/ghc,gridaphobe/ghc,ezyang/ghc,TomMD/ghc,siddhanathan/ghc,ezyang/ghc,mettekou/ghc,nushio3/ghc,vTurbine/ghc,urbanslug/ghc,nushio3/ghc,snoyberg/ghc,elieux/ghc,wxwxwwxxx/ghc,mcschroeder/ghc,gcampax/ghc,AlexanderPankiv/ghc,lukexi/ghc-7.8-arm64,holzensp/ghc,ml9951/ghc,olsner/ghc,nathyong/microghc-ghc,green-haskell/ghc,ryantm/ghc,fmthoma/ghc,vTurbine/ghc,olsner/ghc,tjakway/ghcjvm,tibbe/ghc,mfine/ghc,gridaphobe/ghc,ekmett/ghc,lukexi/ghc-7.8-arm64,gcampax/ghc,shlevy/ghc,siddhanathan/ghc,ghc-android/ghc,ryantm/ghc,mfine/ghc,shlevy/ghc,mcschroeder/ghc,fmthoma/ghc,acowley/ghc,elieux/ghc,snoyberg/ghc,ml9951/ghc,bitemyapp/ghc,TomMD/ghc,holzensp/ghc,lukexi/ghc-7.8-arm64,shlevy/ghc,jstolarek/ghc,da-x/ghc,da-x/ghc,forked-upstream-packages-for-ghcjs/ghc,da-x/ghc,snoyberg/ghc,olsner/ghc,elieux/ghc,urbanslug/ghc,acowley/ghc,frantisekfarka/ghc-dsi,tibbe/ghc,acowley/ghc,mcschroeder/ghc,snoyberg/ghc,lukexi/ghc,wxwxwwxxx/ghc,tjakway/ghcjvm,sgillespie/ghc,shlevy/ghc,bitemyapp/ghc,nathyong/microghc-ghc,nkaretnikov/ghc,ghc-android/ghc,gcampax/ghc,AlexanderPankiv/ghc,green-haskell/ghc,ryantm/ghc,snoyberg/ghc,holzensp/ghc,mettekou/ghc,gcampax/ghc,sgillespie/ghc,olsner/ghc,sgillespie/ghc,fmthoma/ghc,vTurbine/ghc,forked-upstream-packages-for-ghcjs/ghc,nkaretnikov/ghc,oldmanmike/ghc,tibbe/ghc,gridaphobe/ghc,anton-dessiatov/ghc,forked-upstream-packages-for-ghcjs/ghc,da-x/ghc,gridaphobe/ghc,ml9951/ghc,tibbe/ghc,mfine/ghc,GaloisInc/halvm-ghc,acowley/ghc,vTurbine/ghc,TomMD/ghc,wxwxwwxxx/ghc,mcschroeder/ghc,mfine/ghc,gridaphobe/ghc,green-haskell/ghc,christiaanb/ghc,GaloisInc/halvm-ghc,fmthoma/ghc,ryantm/ghc,spacekitteh/smcghc,christiaanb/ghc,hferreiro/replay,mettekou/ghc,jstolarek/ghc,vikraman/ghc,tjakway/ghcjvm,olsner/ghc,siddhanathan/ghc,lukexi/ghc,fmthoma/ghc,ghc-android/ghc,frantisekfarka/ghc-dsi,oldmanmike/ghc,ezyang/ghc,mettekou/ghc,GaloisInc/halvm-ghc,tjakway/ghcjvm,sdiehl/ghc,ml9951/ghc,spacekitteh/smcghc,sgillespie/ghc,nathyong/microghc-ghc,mcschroeder/ghc,vikraman/ghc,christiaanb/ghc,siddhanathan/ghc,nkaretnikov/ghc,ghc-android/ghc,christiaanb/ghc,AlexanderPankiv/ghc,vikraman/ghc,mfine/ghc,wxwxwwxxx/ghc,ekmett/ghc,sdiehl/ghc,frantisekfarka/ghc-dsi,ezyang/ghc,GaloisInc/halvm-ghc,hferreiro/replay,nushio3/ghc,spacekitteh/smcghc,ekmett/ghc,oldmanmike/ghc,forked-upstream-packages-for-ghcjs/ghc,vTurbine/ghc,nkaretnikov/ghc,wxwxwwxxx/ghc,tjakway/ghcjvm,vikraman/ghc,sgillespie/ghc,AlexanderPankiv/ghc,sgillespie/ghc,anton-dessiatov/ghc,jstolarek/ghc,nushio3/ghc,TomMD/ghc,acowley/ghc,anton-dessiatov/ghc,ezyang/ghc,ekmett/ghc,urbanslug/ghc,sdiehl/ghc,nkaretnikov/ghc,ekmett/ghc,christiaanb/ghc,nathyong/microghc-ghc,GaloisInc/halvm-ghc,anton-dessiatov/ghc,olsner/ghc,sgillespie/ghc,vTurbine/ghc,shlevy/ghc,mcschroeder/ghc,elieux/ghc,vikraman/ghc,da-x/ghc,fmthoma/ghc,wxwxwwxxx/ghc,snoyberg/ghc,lukexi/ghc,oldmanmike/ghc,bitemyapp/ghc,anton-dessiatov/ghc,siddhanathan/ghc,TomMD/ghc,ml9951/ghc,holzensp/ghc,vTurbine/ghc,anton-dessiatov/ghc,urbanslug/ghc,forked-upstream-packages-for-ghcjs/ghc,jstolarek/ghc,green-haskell/ghc,oldmanmike/ghc,nushio3/ghc,bitemyapp/ghc,fmthoma/ghc,nkaretnikov/ghc,christiaanb/ghc,elieux/ghc