isInstanceOf: Allow multiple classes to be tested for
CanvasObject: Convert getGlobalPoint to getPointIn

This new method can convert the given local point to a point
inside the coordinate space of the given reference.

child.getPointIn(parent, 10, 10);
Canvas: Fix issue with HTMLCanvasElement constructor

When testing only CanvasObject with mocha, the HTMLCanvasElement
is not mocked, so running new Canvas() would trigger errors
because HTMLCanvasElement is not defined.
Canvas: Default dimension properties if no element is set
mock/canvas2d: Use mocked HTMLCanvasElement in mocked createElement
Move out test utility round for number rounding
Update matrixmath to ^2.1.0
utils/matrix: Add getIdentityMatrix
Canvas: Add getTransformationMatrix (+ a cache)
Camera: Convert getGlobalPoint to getPointIn

This new method can convert the given local point to a point
inside the coordinate space of the given reference.

camera.getPointIn(canvas, 10, 10);
Rename cache units for getPointIn
CanvasObject: Use the new matrixUtils.getIdentityMatrix
Camera: Use the new matrixUtils.getIdentityMatrix
CanvasObject: Fix getPointIn when a Canvas instance is reference
CanvasObject: Add method getPointFrom (to get local point from ref)
CanvasObject#getTransformationMatrix: Clarify the optional ref
Update getVertices to take a reference

This will eventually replace getGlobalVertices. Until then,
getGlobalVertices just uses getVertices with the world set as
reference. There will also be a getVerticesForTree that replaces
getGlobalVerticesForTree.
CanvasObject: Update API for global vertices and tree vertices

- getGlobalVertices is replaced by getVerices with a reference
- getGlobalVerticesForTree is replaced by getVerticesForTree,
  with a reference.
Camera: Put logic for getGlobalVertices in getVertices
CanvasObject: Update getBoundingRectangle to support references