add node-canvas support

* add canvas as a peer dependency as required by jsdom
* add tests to ensure the standard canvas api is mostly available