Loops within loops is suboptimal. Changing how many times the random walk
goes for or the size of the image to some larger value crashes the browser.
Playing around with values, went on this journey...
The downwards bias was due to the fact that any visited pixel wouldn't
be able to be included in subsequent pixel changes, so this excluded
in the initial rows that were checked but discarded for not including
pixels of the white text it was looking for.
I wanted to make the UI a bit clearer, like showing it as loading
while the heavy computation takes place. But I noticed Vue was
choking, and the changes to the variables didn't seem to change
the DOM. In short, to defer heavy computations until after other
variables have changed and their changes rendered, a double call
to "requestAnimationFrame" is necessary.