str: Implement proper string (instead of byte string) indexing.

Also, support negative indexes.