Organized files, linked JS/CSS, ran flake8, JSLint, and various cleanup

See e0cec28459972dd4b8ae2470ce739363ecb342d7 to disregard #1 in the diff.