Set removeOnCancelPolicy on the threadpool if supported

This should solve the task retention problem of unused timeout tasks mentioned in #1919.

I know Java 7+ ScheduledThreadPoolExecutor has the ```setRemoveOnCancelPolicy``` and I remember seeing it in Android although I can't tell from which API version.

In Java 6, this can't be solved without rewriting the entire scheduler or using a backported executor.
Nice :-) I was wondering if we could start using reflection for things like this.