Support `devicePixelRatio` !== 1. Fixes resize issues on Retina displays.

@allisoncorey @eric79 @BrettASwift, this keeps the canvas' CSS size correct on high-resolution displays that  have multiple physical pixels per CSS pixel. It also sizes the canvas internally for physical pixels to enable high-resolution rendering.

I'm not sure I understand the conditions in which `viewWidth` will equal `mycanvas.clientWidth` and under what conditions it won't.