fix for scrollbar 'hop' on .modal-open

this fixes #9855.

It uses the same technique that Twitter uses on their own modals: 

create two empty divs, one scrolling within the other. The difference in widths is the offset needed to stop the body from shifting when its scrollbar is hidden.