utils/defineProperties: Make `true` the default for `configurable`

By defaulting to `true`, we are being more open to modifications.
This will make properties defined in classes configurable by
default, which is good for sub-classing, since a sub-class can
then override the definition for a specific property.
Fix typos
Fix wrong file path in an example
utils/matrix: Use function declarations
util/matrix: Add method setProduct

This method makes it easier to multiply many matrices together
into a provided matrix instance. It also allows passing the target
matrix as input, since the method uses a temporary cache for the
initial target data.
pointers: Add PointerEvent to exports of pointers/ module
Add tests for index files for shapes
Add new base shape class: EllipticalCanvasObject

This new class is the base class for other shapes that are based
on the `radiusX` and `radiusY` properties, such as ellipse and
circle.
Add new shape: Ellipse
Add new shape: Circle