[spectrum] Draw spectrum as a single object

glDrawElements is called 256 times per frame, once for each bar. It is more efficient to batch up larger blocks.
This change draws the spectrum with a single glDrawElements call.

Looking at visualisation in full screen mode, it used to top out at 75 fps. With this PR it can hit 125 fps.