Replace substring with slice.

Slice is shorter and more intuitive: negative arguments are treated as
being relative to the end of the string, similar to arrays.

The only place it made sense to keep substring was in
d3_locale_numberFormat, where the first argument can be negative but
substring automatically treats this as zero.
Merge remote-tracking branch 'origin/slice' into 3.4.12