Fix: invalid evaluation and exceptions of index.

The old index returns an offset number from the given position, not
index of the entire rope.
Like String.index, if the target character is not found in the given rope,
index should raise Out_of_bounds, not Not_found.
Also added some tests.
Fix: find_from raises Out_of_bounds if the position is invalid.

Like String.find_from, if the position is invalid, find should raise
Out_of_bounds, not Not_found.
Change ambiguous names, such as s1 and s2, to more meaningful names.
Add some tests.
Fix: rfind_from raises Out_of_bounds if the position is invalid.

Like String.rfind_from, if the position is invalid, find should raise
Out_of_bounds, not Not_found.
Change ambiguous names, such as s1 and s2, to more meaningful names.
Add some tests.