refactor for #325 - using a plugin priority calculator rather than exposing it on the Plugin interface so it remains an internal concept for the time being