BUG: Correct behavior for lists of tuples in unique, closes #4785

np.unique produces wrong results when passed a list of tuples and
no keyword arguments, as it fails to recognize it as a multidim
array, but handles it as a 1D array of objects. The only way around
this seems to be to completely eliminate the fast path for non-array
inputs using `set`.
MAINT: improve readablility of cross and improve test coverage
BUG: improve log2 windows compiler fallback of log2

Fallback (similar to python3.4 math.log2) provides int(log(2**i)) == i
in default rounding mode.
Non-default rounding modes not tested but if it does not work we are at
least not worse than python.
Closes gh-4787
Merge pull request #4788 from jaimefrio/unique_nonarray

BUG: Correct behavior for lists of tuples in unique, closes #4785
Merge pull request #4790 from juliantaylor/log2-windows

BUG: improve log2 windows compiler fallback of log2
Merge pull request #4786 from juliantaylor/cross-style

MAINT: improve readablility of cross and improve test coverage
DOC: add some highlights to release notes and reorganize

also minor general documentation fixes
[ci skip]
Merge pull request #4789 from juliantaylor/release-notes-19b1

DOC: add some highlights to release notes
BUG: Fixed piecewise function for 0d input

When `x` has more than one element the condlist `[True, False]`
is being made equivalent to `[[True, False]]`, which is correct.
However, when `x` is zero dimensional the expected condlist is
`[[True], [False]]`: this commit addresses the issue. Besides,
the documentation stated that there could be undefined values
but actually these are 0 by default: using `nan` would be desirable,
but for the moment the docs were corrected.