Animation State Machine - Declarative animation and machine state build on top of AngularJS