Smarter hardware acceleration for better performance and less bugs

* Significant improvement to iOS Safari performance — now tiles aren't HW-composited layers (which makes no sense after all), and they're positioned using translate2d. Especially noticeable when pinch-zooming out.
* translate2d instead of top/left also magically fixes gaps between tiles in desktop Safari.

I had to resort to a very obscure hack to fix things in Safari — previously the tile layer was stretching weirdly after panning to the right or bottom. After the hack (putting a 1px translated element in the top corner), it doesn't happen much, BUT sometimes still happens, and we need to fix that. Easy way to reproduce is opening `vector-simple.html` in iPad and pan just slightly south so that new row of tiles gets loaded. It will stretch vertically, but if you keep panning, things will get back to normal. This is driving me nuts.

Also needs to be tested across devices (I'm especially interested in Android & IE11) — any help appreciated. 

cc @danzel