NamedPipelineBase.RemoveByName(name) no longer removes PipelineItems with null or empty name

Previously, when adding multiple items to OnError like in this example:
```c#
pipelines.OnError += (ctx, ex) =>
{
    Log.Trace("Item1");
    return null;
};

pipelines.OnError += (ctx, ex) =>
{
    Log.Trace("Item2");
    return null;
};
```

the second item would remove the first one from the pipeline.

Now it works in the same way as in AsyncNamedPipelineBase.RemoveByName(name).