Plugin Registry:
Have a web-accessible database of plugins from everywhere, including their merit values.  gstplugin.c
and the autoplug code (should we abstract out autoplug into a special file?  I think so) can make use of
this database via another module (gstwebregistry.c?) to look up stuff.  A copy of the registry (gzip'd
XML) could even be cached.  System and user options would determine whether this registry is checked
and/or updated automatically.  The registry could simply be merged with the local machine and user
registries, with the state bit set to "don't even have it".  Autodownload/install code should be
provided, though designed such that it's not toolkit/OS specific.

Merit:
Plugins and even type definition should carry merit values, allowing the system to determine which
plugin or type definition is better.  This can be tied into the web registry setup, where merit values
can be updated without requiring an update of the plugins themselves.  They can also be guaranteed
unique if there's a range reserved for registered objects.  Unfortunately, that might get us into some
political wars.  We could leave that up to the users via some voting system.

Scheduling state:
All the scheduling info for a Bin should be contained in a single object of some form.  This can be
saved off and restored seamlessly at some point in the future.  This would be ideal for some autoplug
cases, where the rest of the pipeline simply ceases to exist temporarily, and scheduling entry points
may need to be modified until the autoplug stage is finished.
