HTML canvas scratcher revisited

beej.us
An exercise in refactoring code from being closely tied to a page to being less closely tied. This is based on the previous scratcher code.