better thredding

added bonus: routing updates are now prioritised by the sorting function
on UpdateRouterRunnable, rather than manually on add vs addPriority

if the same router ends up in the list twice, the one with the highest
LSA is done first. a lsa version check is done first, and a set is done.
it is potentially possible that 2 threads will try to update the same
router at once, but the end result of that is just wasted cpu time, as
both threads will create the same table.