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`.
ObjectList means "I promise these have a proc `dd_SortValue`". It's assumed by the old implementation too.