cache: fix compilation on Libav

Appears Libav doesn't have av_clip64(). So implement our own.
cache: fix build on OSX (again)

OSX doesn't support the POSIX API we were using.

We check for _POSIX_TIMERS. 0 or -1 means unsupported. See:
http://pubs.opengroup.org/onlinepubs/009696699/functions/clock_getres.html
http://pubs.opengroup.org/onlinepubs/009696699/basedefs/unistd.h.html

The workaround of using gettimeofday() is suggested by Apple:
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/pthread_cond_timedwait.3.html

Thanks to AStorm for providing help here.