Do not traverse the string twice in String.slice(<str>, <range>)

Signed-off-by: José Valim <jose.valim@plataformatec.com.br>
Clean up String.slice/2/3 impls