Use bowser for mobile detection

# Problem
Mobile detection previously just looked at if touch events were supported. This can get us into problems with touch enabled desktops and laptops.

# Solution
Use the bowser library which does a much more reliable job of detection
No, we're not, especially with a 0.x version - should be hard-pinned.