Rework ui to incorporate JS design patterns/practices

Work in progress
Continue ui refactoring (work in progress)
Add canvas controls to refactored UI (work in progress)
Refactoring js canvas controls (work in progress)