Bug 1084651 - Part 1: Thread SliceBudget through several functions to choose the budget type at the source. r=billm
Bug 1084651 - Part 2: Clean up SliceBudget and require explicitly choosing between TimeBudget and WorkBudget. r=wmccloskey r=mccr8
Bug 1084651 - Part 3: Tighten up the bounds of SliceBudget to work as a budget should.  r=wmccloskey
Bug 1084651 - Part 4a: Adjust some tests to preserve previous behavior.  r=wmccloskey
Bug 1084651 - Part 4b: Adjust and clarify some tests using gcslice(0).  r=wmccloskey
Bug 1084651 - Part 5: Simplify Cycle Collector logic now that SliceBudget makes more sense. r=mccr8
Bug 1084651 - Part 6: Rename SliceBudget::reset to the less misleading makeUnlimited. r=billm