BUG/ENH: Index constructor with dtype now delegates

...to Index subclass (if possible). Simplifies the Index constructor
slightly too, which is a nice side bonus. Will even better after Index
refactor.

Fixes #5196.