Fixed flyout size on toolbox change

@AmbientOSX @kadst43 @scottnc27603 

What this is doing:
`Blockly.mainWorkspace.scrollX = Blockly.mainWorkspace.flyout_.width_ + negateOverlap;`
scrollX is used as part of the calculation for whether or not a block is outside of the boundaries of the blockly window, but it is not updated unless in categorical mode. It is usually equal to the flyout width, but I made it larger than that so that blocks can't overlap the flyout as much.

```
var translation = 'translate(' + Blockly.mainWorkspace.scrollX + ', 0)';
Blockly.mainWorkspace.getCanvas().setAttribute('transform', translation);
```
This sets the SVG bounds of the workspace according to the new flyout width + overlap. This is used when a new block is dragged out so the block's position can be accurately compared against the bounds of the flyout.