Introduced an overload of Replace

taking IEquatable<T> instead of a Func<T, bool>. The implementation
is still incorrect.
Returned source from new Replace overload.
Implemented Replace overload with Equatable<T>

correctly.
Verified that a proper Null Guard Clause exists

for the Replace overload taking Equatable<T>. While the added test
triggered no new SUT code, I have seen the test fail by temporarely
changing the SUT's implementat to return an empty array.
Added a Null Guard Clause for the Equatable<T>

argument.
Renamed 'item' to 'replacementValue' in FSharp

functions, to stay consistent with the naming in the C# code.