Return empty string when given 0 for n in String.duplicate

Currently, String.duplicate("abc", 0) is illegal.
However, I would expect it to return an empty string.
This is the behavior in languages such as Ruby and Python: "abc" * 0 returns an empty string.
It actually turns out to already be the default behavior of :binary.copy as well, so it's only an issue of changing the guard clause.