Refactoring animation, added typed tracks

A track being a value that changes over time.
Enclosed all easing types under one 'ease' function.