Simple, versatile progress tracking in AngularJS