contrib code to core: - Sort ContentList can't be done with Collections.sort() because Collections.sort() does not honour the only-one-parent-at-a-time logic
Fixes #65 : Add sort logic to Element (and ContentList).
Move sorting from Contrib - this is not a straight port, rather, it is the implementation of the same core functionality, but using all the nice generics tricks (and some not-so-nice ones).
Need to be able to sort attributes too.
Fixes #65 (again) - Add sorting of Attributes too.