Add background processing to the `rug-ctl browse` command for performance

Random will still allow 2 threads to try to update the same object, which won't introduce problems but you could avoid it by having another thread add routers to be updated to a queue and having the update threads read from the queue instead of the database.