moved CSS to external stylesheet
implemented precaching of canvas

Precaching will render all gray LEDs to an in-memory canvas (only
performed as part of refreshUi), which will get used in all other
instances of when the canvas is rendered.  When the canvas is rendered
in the usual manner, it now will only attempt to render lit LEDs overtop
the precached version.
added frame preview to canvas on mouseover
JSDocced all methods in index.html
JSDocced frame.js