BUG: Fix array_split empty array type and add FutureWarning

Fixes the result type of empty output arrays.

The FutureWarning warns about changed behaviour. A "kludge" was
introduced into array split converting converting the result of
something like:

>>> np.array_split(np.array([[1, 1]]), 2)
[array([[1, 1]]), array([], dtype=int64)]

instead of retaining the shape of the empty/second array to
be (0, 2). A FutureWarning is now raised when such a
replacement occurs.

Closes gh-612
Merge pull request #4102 from seberg/issue-612

FIX: Array split should not hack empty array shape away