Port to AngularJS

Ported the whole thing to pure AngularJS to learn and practice Angular.
Plus other various fixes and stuff.