[Scheduler] Fix a couple scheduler bugs.

If the current playlist is non-repeating and not playing, then
reschedule.

Adjust the end times of playlists to be non-inclusive.  This
handles the case of one playlist ending at the same time another
playlist is scheduled to start.  It does not handle overlapping
playlists if the overlap is caused by the first playlist running
over due to a sequence or media stopping gracefully.

(cherry picked from commit 324d6a5970739e8ae7567411ae0717b4641ecf83)
(cherry picked from commit ee3e5c5a029c4584bc6277ee30cc52d9e3833979)
[ChannelOutput] Limit minimum loop time when trying to sync.

(cherry picked from commit ec15621f691401e04da2cc8797fd0b7bce040d52)
(cherry picked from commit 4ac14e8d01543686328a8cd9278cfc2cd791dbb1)
[Debugging] Re-add scheduler listing debug erroneously removed.

(cherry picked from commit d51ea895418f2784c510c693f9d6ab5503cab1c3)
(cherry picked from commit 1d9d3ecec3b8f54ee39fee6876f47ae75542e37d)
[Scheduler] Fix state machine bug.

When ending a scheduled playlist and detecting that we should be playing
another scheduled repeating playlist, we were not re-initializing the
player so the second playlist was not ending and we would continuously
detect that we should be playing and try to restart the playlist until
the end time for the second schedule occurred.

(cherry picked from commit 236a16582b91b1c3282c68cbdd0e5e07626e08d0)
(cherry picked from commit 3e7a6125d9150e44b4908b19ccebddfe626cb7a7)
[MediaDetails] #include mediadetails.h in fppd.
[Binaries] Commit new fppd binary after recent scheduler fixes