Call ImmutableList<T>.AddRange from ConvertAll and FindAll

There are 2 more places where we can benefit from the performance optimization in ImmutableList<T>.AddRange

My benchmarking shows the following results:

    Benchmarking FindAll:
    Using random seed -1979800607
    Optimized; iterations: 20; Time: 00:00:00.3338650
    Original; iterations: 20; Time: 00:00:00.7364930

    Benchmarking ConvertAll:
    Using random seed -1967300607
    Optimized; iterations: 20; Time: 00:00:00.3541609
    Original; iterations: 20; Time: 00:00:01.2586320

(Benchmark code is here: https://github.com/PatrickMcDonald/corefx/tree/immutablelist-addrange-refactor-perf)

Previously, it looks like this method was allocation free if 'this' wasempty, but that's no longer the case, as now we call Select, which will allocate an enumerable, and pass 'this' to Select, which will allocate an enumerator, and we do both even if 'this' is empty.  Should a special case be added for that?