Photoshop-style blend modes for HTML Canvas Contexts