Added string.IsNullOrEmpty(name) check to NamedPipelineBase.RemoveByName(name).

Now it works in the same way as AsyncNamedPipelineBase.RemoveByName(name).
Added unit tests
Added 'Given, When, Then' and changed asserts to shoulds in tests.
Added 'Given, When, Then' to the NamedPipelineBaseFixture test and fixed indenting.
Merge pull request #1353 from raurfang/namedpipeline-removebyname-fix

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