Optimized NotNullOrEmtpy for IEnumerable values. Closes #3

This PR implements the suggestion made in issue #3 to optimize the `NotNullOrEmpty` method that takes an `IEnumerable`. I have further optimized the `ICollection` part to throw when the `Count` is not equal to `1`.