Multiple fixes to array.extend()

    * Fix self / other typecode compatibility check and add test

    * In CPython, PyErr_BadArgument() C-API function always raises an
      exception and returns zero

    * It is needed to add the `except -2` clause, so that the exception
      raised by PyErr_BadArgument() is not ignored

    * Additionaly, the `return -1` statement in array.extend() will have
      no effect, and hence is misleading, so it needs to be removed

Signed-off-by: Yury V. Zaytsev <yury@shurup.com>