Pass cleanup function along to providers so they can perform necessary
cleanup. Allow them to specify that they don't want to be unloaded.
Authored by: bartw 2009-02-26
Parent: [r1164]
Child: [r1166]