Bug 979047, part 1 - Only clear mBeginSliceTime in EndCycleCollectionCallback. r=smaug

Run FinishCycleCollectionSlice only once per slice, and only if we've previously run PrepareForCycleCollectionSlice.
Bug 979047, part 2 - Remove unused endGCTime assignments. r=smaug
Bug 979047, part 3 - Make sure we trigger a GC after a current ICC when we poke the GC. r=smaug
Bug 979047, part 4 - Run ICCSliceTime() after PrepareForCollectionSlice. r=smaug

This way we take into account time spent finishing off a GC, or something.
Bug 979047, part 5 - Make sure we have at least one early forgetSkippable timer fire. r=smaug

With ICC, ccDelay can get close to NS_CC_SKIPPABLE_DELAY, but we want to always want to run at least one forgetSkippable before the actual CC.