Basic animation framework, supporting standard and custom easing functions