FFT visualizer, undo/redo, more effects

added some effects, and decided to handle undo/redo with Javascript.
Still need to figure out how to delete all the files when a user closes
their session or when files are inactive. I struggled to find the
'audiocontext' that wavesurfer creates but after I found out how to
access that I added a little visualization of the frequency spectrum as
the sound plays. Experimented with dat.gui interface but I think I'll
stick with bootstrap. Gotta get this lookin more consistent and nice.

Next steps:
* figure out how to determine the position of Green and Red markers so
that SoX can make edits.
* add edits
* figure out how to loop playback in webaudio.
* When files are uploaded using SoX, encode as PCM for faster edits,
but store original extension, and reconvert on download.
* add info about the audio file (name, duration / timestamps) so that
effects like "speed down" are more apparent.
* Add "Zoom" with an a full waveform up top.
* Set loop points and zoom window by dragging.