Camera: Check if reference exists before passing it on
Camera: Check if both ref and mode matches for a valid cache
Canvas: Optimize bRect rendering by using isTreeInView
CanvasObject: Depend on correct cache units
Camera: Fix invalid zoom handling

Calculating the bounding rectangle for the camera zoom was
incorrectly taking the zoom into account twice, causing wrong
values.
Add some tests for Camera to bump up the coverage again