fixed a typo
assert on unsupported types in _promote_types + shortened some lines.
commented a bit the Helper classes. corrected typos
retooled divide. It now relies on “/?”. Better type handling.

Now uses numpy loop selection logic to select the appropriate function
to use. Before it was relying on the denominator type and extra logic
that wasn’t as reliable.

Also reformatted some looong lines.