Allow Collection::sortBy and sortByDesc to accept a string
several improvements
fix tests