Lightweight HTML5 Canvas abstraction layer