UI: fix broken tests

Tests now are fixed though some refactoring is still needed to
split them up along current module boundries
UI: test improvements & subsequent js edge case handling

Fixes / improves js tests so that they more accurately reflect
& test current functionality.

Removes some central / shared omega class instances and just
instantiates as necessary in tests.

Handles various edge cases as made evident through the test
updates, most notably:

- correctly represent # of async resource loaded
- automatically init base canvas attrs, split out 'append' method
  to append renderer elements to page
- other small one-off fixes

Tests still need to be split along current module boundries and
expanded to reflect all recently added functionality. Also seems
to use a bit too much memory / which takes a while to GC, need
to reslove this going forward.