Improved consistency of OLImageView's displaylink managment

- OLImageView now uses `displayLink.duration` instead of keeping track of the previous timestamp in order to calculate the duration.
- OLImageView no longer invalidates & reinitializes the `displayLink` property in startAnimation.
- The setter of the `displayLink` property now calls invalidate on the old ivar. So you can no longer have to do that manually.