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.

To fix this, rewrite deleteCharAt0 in terms of delete0
and fix delete0 to throw when start == count == end.

This issue has been around since cupcake or earlier.

https://code.google.com/p/android/issues/detail?id=60639

Change-Id: I34ed1e20220391c5ac648c0f874be10c87801d9b