BUG: Fix `take` parameter on `upcoef`

`upcoef` function would raise a value error due to a normal division
instead of an integer division. Changing this made it return an empty
array if `take == rec_len - 1`. The cleanest fix was to increment the
right instead of the left boundary, this also allows reconstruction of
the original signal using the sums of upcoef with 'd' and 'a' parts.

NOTE: This means that `upcoef` will return different (but equally
correct) results than before for the same inputs. Doesn't cause any
tests to fail and seems a saner behaviour.
ENH: Add `take` parameter to idwtn

Adds the `take` parameter to idwtn. This can take an iterable or single
integer and will ensure the resulting array is of those dimensions using
the `take` parameter of `upcoef`.
MAINT: Change order in which idwtn processes axes

By changing the order in which `idwtn` processes axes, any iterable used
in the `take` parameter can be used directly instead of first converted
to a tuple and reversed.

Note changes to `test_multidim.py` - these changes shouldn't make a
difference but are necessary to pass the tests. I suspect a bug in
numpy's testing routines.