Fix premature disposal of IProgressMonitor in parallel background search.
This was the cause of "InvalidOperationException: The LinkedList node does not belong to current LinkedList." in ProgressCollector.UnregisterNamedMonitor().
/// Creates an <see cref="ISearchResult"/> object from a list of matches.
/// </summary>
/// <param name="title">The title of the search.</param>
/// <param name="matches">The list of matches. CreateSearchResult() will enumerate once through the IEnumerable in order to retrieve the search results.</param>
/// Creates an <see cref="ISearchResult"/> object for a background search operation.
/// </summary>
/// <param name="title">The title of the search.</param>
/// <param name="matches">The background search operation. CreateSearchResult() will subscribe to the observable in order to retrieve the search results.</param>
/// The previously shown search will be stored in the list of past searches.
/// </summary>
/// <param name="title">The title of the search.</param>
/// <param name="matches">The list of matches. ShowSearchResults() will enumerate once through the IEnumerable in order to retrieve the search results.</param>
/// Performs a background search in the search results pad.
/// The previously shown search will be stored in the list of past searches.
/// </summary>
/// <param name="title">The title of the search.</param>
/// <param name="matches">The background search operation. ShowSearchResults() will subscribe to the observable in order to retrieve the search results.</param>