macosx: Avoid retaining objects that are not necessary to keep alive
This MR contains a number of changes.
The first is that we are now more aggressive in marking properties as weak in cases where these are meant to be owned by a parent object.
The second is that in some view controllers (the library video view controller) we only keep around the data source that is being actively used by the active view, and dismiss the other data sources that are not needed.
The third and bigger change is in the handling of the various library segment view controllers. We not have an abstract class that we inherit from which contains some basic shared properties. More importantly, we have collapsed all of the properties that would retain the various segment view controllers all the time into a single property, meaning when we switch library segments we will be deallocating the library segment view controller for the now unused library segment (with the exception of the media source view controller, as this needs further changes to accommodate)
Signed-off-by: Claudio Cambra developer@claudiocambra.com