Use canvas whenever possible (#191)

Drawer uses an HTML5 canvas element if it's available.

Viewer.useCanvas can be used to override (default is true).

Fix for #191