Add _.sortByDescending function

Add a function to do a stable sorting in reverse order since there is currently no way to this in underscore (_sortBy().reverse() change the order of equal elements).

sortBy has been refactored so that sortBy and sortByDescending share most of their implementation