RF: remove PARREC get_voxel_size method

``get_voxel_size` only being used in ``_calc_zooms`` method; fold code
into that method, deprecate ``get_voxel_size``.
BF: fix typo in PARREC general header field name
RF+TST: refactor / test ``_get_unique_image_prop``

I think the previous code was incorrect comparing 2D arrays, and I found
it hard to follow.  Refactor to do simple diff to find any differing
rows in the array; return scalar if selected array is 1D.
RF: fix futurewarning about None, None comparison
NF: add context manager to clear warnings registry

Testing warnings can be really annoying, because once the warning has
been raises, by default, it cannot be raised again, because it is
already in the warnings registry.

Here is a context manager to reset the warnings registry inside the
context manager.

The general idea was inspired by the conversation here:

https://stackoverflow.com/questions/2390766/how-do-i-disable-and-then-re-enable-a-warning
RF+TST: rename and test sorted_slice_indices

Rename the ``sorted_slice_indices`` property to a
``get_sorted_slice_indices`` method, and test.
RF: do not cache slice_orientation

We were caching slice_orientation, but the other ``get_`` methods do not
cache and get their values from the current values of
``self.general_info`` and ``self.image_defs``.  Do the same for
``get_slice_orientation`` so that the values are always up to date with
the image attributes.
RF: copy input parameters on header creation

The input parameters are small, and it is easy to get confused when
using the mutable input parameters elsewhere, so copy the input dict,
array so each header has their own copy.