bson: don't trust expression evaluation order
bson: don't trust expression evaluation order

The evaluation order of

  end := d.i - 4 + int(d.readInt32())

differs when compiled with gccgo vs the gc toolchain, and is
apparently unspecified according to the spec.

velocity-toolkit/mgo,velocity-toolkit/mgo,tobyzxj/mgo,tchajed/mgo,henrylee2cn/mgo,hexadecy/mgo,dmage/mgo,SocialExplorerFork/mgo,Yottaa/mgo.v2,jackspirou/mgo,gabrielrussell/mgo,mcuadros/mgo,jjz/mgo,gabrielrussell/mgo,go-mgo/travis-test,mjs/mgo,gabrielrussell/mgo,tchajed/mgo,raymondjacobson/mgo,tobyzxj/mgo,tchajed/mgo,mcuadros/mgo,hexadecy/mgo,jjz/mgo,dmage/mgo,SocialExplorerFork/mgo,Danzeer/mgo,DroiTaipei/mgo,raymondjacobson/mgo,deafgoat/mgo,hexadecy/mgo,lucasjo/mgo,henrylee2cn/mgo,jjz/mgo,tmc/mgo,Danzeer/mgo,mjs/mgo,gabrielrussell/mgo,tchajed/mgo,Yottaa/mgo.v2,jackspirou/mgo,tobyzxj/mgo,dmage/mgo,jjz/mgo,jackspirou/mgo,velocity-toolkit/mgo,dmage/mgo,deafgoat/mgo,mjs/mgo,Danzeer/mgo,hexadecy/mgo,SocialExplorerFork/mgo,lucasjo/mgo,lucasjo/mgo,roamz/mgo,tobyzxj/mgo,mcuadros/mgo,Yottaa/mgo.v2,SocialExplorerFork/mgo,tchajed/mgo,lucasjo/mgo,raymondjacobson/mgo,jackspirou/mgo,henrylee2cn/mgo,go-mgo/travis-test,raymondjacobson/mgo,go-mgo/travis-test,DroiTaipei/mgo,tmc/mgo,velocity-toolkit/mgo,Yottaa/mgo.v2,tmc/mgo,mjs/mgo,Danzeer/mgo,deafgoat/mgo,DroiTaipei/mgo,DroiTaipei/mgo,go-mgo/travis-test,tmc/mgo,deafgoat/mgo,mcuadros/mgo,henrylee2cn/mgo