MediatorLiveData

LiveData subclass which may observe other LiveData objects and react on
OnChanged events from them.

This class correctly propagates its active/inactive states down to source LiveData
objects.

Consider the following scenario: we have 2 instances of LiveData, let's name them
liveData1 and liveData2, and we want to merge their emissions in one object:
liveDataMerger. Then, liveData1 and liveData2 will become sources for
the MediatorLiveData liveDataMerger and every time onChanged callback
is called for either of them, we set a new value in liveDataMerger.