Right now plugins appear to be registed in an undefined order based on what the linker decides to link in first.
This is undesireable as if there are multiple potential databases in a directory we can't specify which one should be treated as the defacto.
To address this there is a virtual getPriority method in the CompilationDatabasePlugin.
Plugins will then be sorted based on that(lowest first) and then search for a CompilationDatabase in the specified directory.
JSON database will now load first before Fixed database but there is plenty of room to insert plugins that would take priority over JSON, like ninja or make files.
A side effect of this change is that every plugin will get instantiated, not just the ones for which we attempt a load.
Perhaps we should store a pointer to the entry in the vector here, and instantiate() in the second loop below?