Previously, PluginManager.loadPlugins would make a graph of reverse
dependencies, topologically sort them, then reverse the list. This commit
changes loadPlugins to build a graph of dependencies so no reversal is needed.
Co-authored-by: Adam <Adam@sigterm.info>
If one plugin has multiple dependencies this would throw a concurrent
modification exception due to iterating the successors after removing
the edge
Fill out javadoc for topologicalSort
Co-authored-by: Adam <Adam@sigterm.info>