Canvas renderer

This pull request adds a new renderer based on canvas (2D). It is far from optimized, and it does not clear areas where there are no tiles yet, but it has several nice features:

 * very small (50% of the size of the DOM renderer)
 * good/very good performance
 * excellent cross-browser support now
 * no cross-browser differences in rendering (cf. #100)
 * increasingly hardware accelerated on many browsers

Given that we need canvas support for vector layers where WebGL is not available, I would suggest that this should be our primary renderer when WebGL is not available, and that the DOM renderer should only be used in special cases.