PlayerEngine: workaround dupe about-to-finish signals (bgo#679938)

Banshee codebase was making the reasonable assumption that
GStreamer was sending one (and only one) about-to-finish
signal for each play of each track, however this is not the
case, and this issue has been reported as bug BGO#722769.

Gapless feature was relying certainly on this assumption, and
therefore it was causing subtle unintended behaviours, such as:

- bgo#679938: Repeat always ON (tested by Ismael Olea)
- bgo#674293: Stop when finished is ignored (very likely)
- and possibly more...

To fix this we need to prevent the event RequestNextTrack to
be fired twice, so we put a timestamp every time current_track
is assigned, store that timestamp in the native and managed
PlayerEngines, and compare it, to prevent the OnAboutToFinish()
method to run twice for the same play.