ENH: Allow ravel to reshape in place when possible

This fixes a lot of corner cases in reshape 'K' when the array
is not contiguous in the first place, it was previously never
ravelled in place.

Closes gh-5033
BUG: Readd the cblas.h header.

Rename cblas.h to npy_cblas.h and put it in numpy/core/src/private.
Fix the various includes to account for the change.

It turns out that MKL provides cblas, but not cblas.h. Rather, they
provide mkl_cblas.h, which also uses typedefs for the CBLAS_XXX enums.
Merge pull request #5078 from charris/add-back-cblas.h

BUG: Readd the cblas.h header.
Merge pull request #5034 from seberg/inplace-ravel

ENH: Allow ravel to reshape in place when possible
BUG: fix out of bound access in unicode argmin/argmax

elsize is in bytes and the pointer of unicode type, so it must divided
by the size.
Closes gh-5082
Merge pull request #5087 from juliantaylor/unicode-argmin

BUG: fix out of bound access in unicode argmin/argmax
DOC: add section on compiling pyf files

Add section to remind the readers to recomplile add.pyf and add.f95
files before checking the add module in python
Merge pull request #5076 from kanhua/kh_fix

DOC: Minor fix on c-info.python-as-glue.rst
BUG: fix wrong error checks of PyBytes_AsStringAndSize

The check in ufunc_type_resolution.c is broken due to a spurious not and
a few cases of TypeError being overwritten without clearing.
Also change all of these error checks to a negative check for
consistency.
Merge pull request #5088 from juliantaylor/not-fix

BUG: fix wrong error checks of PyBytes_AsStringAndSize
BUG: np.unique with chararray + inverse_index

The call to `empty_like` was trying to use the `chararray` subclass,
which doesn't support the `np.intp` dtype.
Merge pull request #5099 from perimosocordiae/patch-1

BUG: np.unique with chararray + inverse_index
DOC: replacing old reference from EPD to Canopy
Merge pull request #5102 from dpinte/fix/epd_canopy

replacing old reference from EPD to Canopy
BUG: don't propagate subtypes from np.where

the C implementation cannot preserve subclass attributes, this needs a
python wrapper using indexing for subclasses.
closes gh-5095
BUG: check if object provides len() before trying to iterate it

some libraries want object arrays from objects that are iterable but
rely on not providing len() to get the right dtype from numpy.
closes gh-5100
BUG: check success of PyArray_DescrFromType in PyArray_InnerProduct

closes gh-5065
Merge pull request #5105 from juliantaylor/where-no-subtype

BUG: don't propagate subtypes from np.where
DOC: remove preservena reference from docstrings

preservena is not not implemented.
the putmask docstring is misleading, currently copyto is faster for
dense or sparse masks while putmask is faster for random masks.
[ci skip]
Merge pull request #5106 from juliantaylor/sequence-fix

BUG: check if object provides len() before trying to iterate it