Add a virtual GetCurrentProgram() method to ScheduleCommon.
Change ScheduleCommon::GetCurrentProgram() to const.
Remove redundant code dealing with ScheduleCommon::ShowUpcoming().
Remove redundant code dealing with ScheduleCommon::ShowUpcomingScheduled().
Remove redundant code dealing with ScheduleCommon::ShowDetails().
Missed PrgramRecPriority::ShowUpcoming() in earlier changes.
Change ShowUpcoming() to fall back to ShowUpcomingScheduled().

If there is no channel information, we have a search rule accessed
from the Recording Rules screen.  In that case, run
ShowUpcomingScheduled() if there is a valid recording rule ID.
Remove redundant code dealing with ScheduleCommon::EditScheduled().
Remove redundant code dealing with ScheduleCommon::Editcustom().
Remove redundant code dealing with ScheduleCommon::ShowPrevious().
Remove redundant code dealing with ScheduleCommon::QuickRecord().
Remove redundant code dealing with ScheduleCommon::EditRecording().
Remove redundant code dealing with ScheduleCommon::ShowGuide().
Allow Channel Search to be called from additional places.

This is on a patch from Angela Schmid, but modified to use the
existing ProgLister constructor and conform to other recent changes to
ScheduledCommon.

Fixes #12180
Allow initial ProgLister item to be set by time.

This is primarily intended for bringing up the Channel Search screen
from another screen.  Instead of setting the first item listed as
current, it tries to start with the same item that was current on the
other screen.

Note that the value used to save the desired time is cleared upon
first use.  If there is a desire to keep it current and use it when
changing views, like chaning channels on the Channel Search screen,
some more work will be needed.
Add Channel Search to the ProgLister menu.