BUG: Fix commutativity of {dot,multiply,inner}(scalar, matrix_of_objs)

Fixes #2469 and #4482. Relaxes fail condition to allow subtype as documented.
MANT: rename variable to avoid shadowing

The variable `obj` in `prepare_index` is shadowed in an inner scope within
the function. Renamed the inner scope variable to `tmp_obj` to avoid
confusion.
DOC: suggest definition of unique symbol in .h

I find it much more convenient to define the PY_ARRAY_UNIQUE_SYMBOL in a
header file #included by all files of the extension (than to repeat its definition in each and every file).
Merge pull request #4500 from jaimefrio/mapping-shadowing

MANT: rename variable to avoid shadowing
Merge pull request #4496 from hmeine/PY_ARRAY_UNIQUE_SYMBOL_docs

mention possible definition of unique symbol in .h
Merge pull request #4483 from meltingwax/meltingwax/2469

BUG: Fix commutativity of {dot,multiply,inner}(scalar, matrix_of_objects)