BUG: Distinguish exact vs. equivalent dtype for C type aliases.
BUG: Distinguish exact vs. equivalent dtype for C type aliases.

For `asarray` and for the `dtype` equality operator,
equivalent dtype aliases were considered exact matches.
This change ensures that the returned array has a descriptor
that exactly matches the requested dtype.

Note: Intended behavior of `np.dtype('i') == np.dtype('l')`
is to test compatibility, not identity. This change does not
affect the behavior of `PyArray_EquivTypes()`, and the
`__eq__` operator for `dtype` continues to map to
`PyArray_EquivTypes()`.

Fixes #1468.

mattip/numpy,endolith/numpy,numpy/numpy,numpy/numpy,numpy/numpy,endolith/numpy,mattip/numpy,charris/numpy,numpy/numpy,endolith/numpy,mhvk/numpy,charris/numpy,charris/numpy,mhvk/numpy,mhvk/numpy,mhvk/numpy,mattip/numpy,mattip/numpy,endolith/numpy,charris/numpy,mhvk/numpy