Use std::list<int> instead of std::set<int> for representing live ranges.

As it turns out, when constructing the actual live ranges, we always
add segments in consecutive order.  This means a list rather than a
sorted set is just fine for representing the live range, and costs
less.  Complexity of all operations is at least as good as with a set.
Another advantage is that merging two adjacent segments into a single
segment can be done in place instead of deleting and inserting.

This appears to improve performance by about 5% on bigfunc.pnacl.ll.