support custom display objects in CanvasRenderer

Sometimes customer rendering must be done at specific point in time during render, for example to add dynamic lighting on top of static background but below moving sprites.

This simple change checks to see if `DisplayObject` has a function named `renderCanvas` and if so call it with Canvas context and transform.

If accepted, similar change should be made on WebGLRenderer for function named something like `renderWebGL`.