Removed ToList and changed Functionality

Removed ToList as Linq extension methods do the same thing (implements
IEnumerable). Changed the functionality of Where, Sort, and
SortDescending to return clones of the object instead of the object
itself. This way you can make calls to Where, Sort, and SortDescending
without the side effects of altering the original object.