Replace -doAnimationCompleted: and -completeAfterAnimations with signals of signals

_Depends on #91._

In this new model, each animation is represented as an inner signal which sends the original value, then completes only when that specific animation has finished. This means that animations can be manipulated in a more functional way than `-doAnimationCompleted:` allowed for.