Add explicit type hints
Unit testing changes - switch to utest and fix up TestUtils.

Switching to utest was done for 4 reasons:

* Cleaner async handling
* Easier cross-platform support (including PHP ready to go)
* Being able to host test results inside a ufront controller (YEAH)
* Out of respect for Franco who started this project ;)

The TestUtils can now be used pretty effectively, see the TestUtilsTest for some simple examples.

Hooray for a testable framework!