Simplified cleanup so that all back-ends are cleaned up through the same Soloud::deinit() call. This is also called from Soloud dtor, but it's better to call it explicitly so that stuff does get cleaned up in proper order.