Slightly concerned about the potential cost of 'freezing' the IEnumerable result from a lot of the LINQ calls in List.  It's unlikely to be free.

So they now just return the IEnumerable.  They are still immutable in the sense that there's no methods for mutation on an IEnumerable.  The programmer will now need to call 'freeze' to turn the result back into an IImmutableList' if they need to call 'add' or 'remove' for example.
Merge branch 'master' of https://github.com/louthy/CSharpLanguageExt.git