Drawing without fillText; refactoring ADD_TO_PATH

WIP for custom font renderer

The patch removes usage of the getImageData/putImageData in the cavnas.js for ADD_TO_PATH operations (see #1687).

Also somewhat addresses #2414