The global media manager object was never cleaned up, so add a (private)
shutdown function to ensure that happens.
Also, `purple_media_manager_register_element` and
`purple_media_manager_get_element_info` are transfer full, while
`purple_media_manager_set_active_element` is transfer none, so reconcile that
inconsistency.
Testing Done:
Ran with valgrind, and fewer leaks were reported.