Made SourceController a reference-counted Singleton

That way, it gets destroyed when the last plugin instance is
destroyed (and recreated if needed again).
Solved set state conflict

Now setting a source's parameters via setstate will not have any
effect if another plugin instance is already responsible for that
source.