Make TupleStruct#== consistent with Array#==

The previous implementation considered a TupleStruct to be equal to an Array
when the Array had more fields than the TupleStruct, but the common prefix of
fields had the same value. That is, we only compared the values of the fields in
the TupleStruct with the corresponding Array entries, and declarared success if
all such comparions yielded equality. That is fishy, but more importantly it is
inconsistent with TupleStruct#==(TupleStruct) and Array#==(Array).

At the same time, remove a useless begin/rescue block. Perhaps the intent was
that fetching a nonexistent Array index in Ruby would yield an exception? That
is not the behavior, so the begin/rescue doesn't seem to serve any useful
purpose.