Fix live offset when availabilityStartTime in future
Created by: davemevans
Following 33e5a743, streams which have availabilityStartTime in the future would fail to play. This is because the live edge calculated in onLiveEdgeSearchCompleted changed to be a runtime configured value of multiples of segment duration which turned out to be more than the hardcoded delay in postponeUpdate. The outcome was that startTime would be calculated to be negative and a valid segment at which to start could never be found.
Fix by ensuring postponeUpdate waits the same amount of time as will subsequently be subtracted, and also belt and braced by ensuring that startTime can never be negative.
There are probably a ton of other magic numbers we need to weed out, but this was noticed as we are currently experimenting with publishing manifest with future aSTs and they were failing to play.
I believe this is causing the second issue in #613.