TypeScript conversion?

Plus a few extras:
* Grunt watch task to maintain the edit, switch windows, reload nature of javascript
* Simplified [component graph](https://github.com/jpfau/gbajs/blob/2d8e73ab1b3a6f0b38b47ec655f0594e1251154f/js/gba.js#L23)
* Optimized [PNG Serializer](https://github.com/TimePath/gbajs/commit/42d3b53e0ccdca777e3acdb4e32c6b1f8a33ec5f)
* Merged debugger + console views, usable standalone or via postMessage
* Defined interfaces + enums

No doubt, TypeScript is much easier to maintain thanks to the extra type information associated with each variable. If you're not familiar, the typing is entirely optional, but it aids in code assistance to prevent accessing properties which do not exist, and you can be sure of the variables passed to functions.