ENH: inv/solve work with empty inner and others empty outer array

This makes the inverse of a 0x0 array simply be 0x0 again. It
also modifies the no-empty array check in favor of a no-empty
*inner* array, since the gufuncs seem to handle the other case
fine.

--

This supersedes gh-3293. I should maybe add some tests that the gufuncs actually work for outer 0-sized, so that the change with only checking the last dimensions is safe, but then, it is ;). Did I forget something to test? @andrenarchy you did the original thing here, does this seem to cover everything?