Changes dd_sortedObjectList() to use mergesort with cached sort values

As in title. This reduces the round-start lag to ~2-3 seconds (roughly the end of the "Welcome to Space Station 13" announcement), rather than the 10-20 seconds it takes currently. The main gain from this is the caching of `dd_SortValue()` results - the default `/obj/machinery` implementation returns `"[sanitize(name)]"`, which takes a while to complete on all machinery in `world`.
If you want generalization it would be better if you could pass the sort value proc in as an argument.