Allow negative indices in String::operator[] and String::remove()

These negative indices indicate the number of characters from the end of
the string.

As a side effect, this now bails out of more methods when the buffer is
NULL.