EUCA 7736: Greatly improve the background search processing

These patches greatly improve the processing of large data sets by fixing some issues with the source selection code listeners and fixing various callback problems. This does not provide a progress bar implementation because, in some cases, we have multiple data sources being fetched simultaneously. That issue should really be addressed separately.