Avoid unnecessary null transforms

This patch significantly reduced the amount of canvas calls in my project.
In some scenes by factor ten. Null transforms and needless fill calls are expensive,
even though they fon't do anything.
Canvas drawing loop improvements

Use plain for loop, use direct _x, _y properties where possible.
Add support for image smoothing param

Set it to false when woking with pixel art. False might lead to better performance, since it would use cheaper interpolation algorithms. It might not make a big difference on GPU backed canvases.
Optimize getBoundingClientRect
Add shallow parameter to group boundingClientRect
Only set opacity flag if there is an actual difference
This whitespace annoys me when diffing
Merge pull request #117 from ponychicken/smallImprovements

Small improvements