Some polish with iOS zoom and pan

This PR fixes a few annoying quirks is iOS Safari.

- Pinch-to-zoom would scale the entire editor UI, including the toolbar and the document. This makes no sense, therefore has been disabled by setting the viewport to be non-user-scalable.
- The canvas's container now does native bouncy scrolling and panning. There is no way to separately enable native (i.e. done by safari) pinch-to-zoom inside an individial element.
- The body and mainContainer have been given a hidden overflow, which stops most cases of inadvertent whole-body bouncy scrolling. This seems to be a recommended trick for stopping it on iOS.
- The toolbar has some new CSS which makes it full-width, absolutely positioned, and with a shadow. It's contents now reflow when the screen is smallish, thus showing all widgets and exhibiting no more floating unclickable zoom slider.
- With the new layouting, the caret no longer appears in strange positions. Previously, the caret would be visually offset with the distance-from-intended-position being proportional to the toolbar's scroll distance.