Fix a bug in AbstractStringBuilder#deleteCharAt0

Deleting the last char in the buffer should trigger
a buffer copy if it's shared, otherwise the last
character of any Strings that share this buffer might
change.

Fix this by rewriting deleteCharAt0 in terms of delete0
after performing the right set of range checks.

Also, add a few more tests for delete().

This corrects the errors made in ag/68250 where I assumed
that we should throw if start == count.

Change-Id: I5ef0dbea212e87f1221f4daeead290e4442dc197