Vector rendering with the DOM renderer

This change makes vector rendering work with the DOM renderer. It includes support for vector layers, feature overlays and custom rendering using precompose/render/postcompose events. A 2D canvas is used for rendering vectors with the DOM map renderer.