More machinery list speedups

Adds `dd_insertObjectList()` proc; uses binary search to locate the position to insert at - this will call `dd_SortValue()` a maximum of about 15 times for each insertion rather than the full 5000+ call sort that insert-then-sort does

Adds call to `process_machines_sort()` in MC initialisation, avoiding having to do this at roundstart.

Changes `/obj/machinery/New()` to insert into the machinery list if the list is currently sorted and the machinery list has completed first initialisation (i.e. the MC has done the initial list sort)