BUG: fix calculation for snapping to center of slice (fixes #2878)

When performing pixel level operations, as with the Editor module,
or even when rendering multiple layers, the result can be ambiguous
when the slice plane is exactly at the border between two pixels due
to rounding differences accumulated through transforms.  This can lead
to inconsistent rendering or operations being applied in a differnt
location than expected.

A regression from 4.1 had crept in by which the slice plane was
being consistently adjusted to be exactly on the pixel boundary,
leading to the potential issues.  This fix ensures that the plane
is adjusted to the middle of the pixel.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21640 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: find dicom helper apps when DCMTK is build outside of CTK

Check in both CTK and DCMTK directories to find executables.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21641 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: fix dicom data bundle export/import

* Fix syntax of zip file size for dump2dcm call (use UL not IS)
* Fix UIDs by having dump2dcm generate new ones to overwrite reference
* Use app logic Zip/Unzip rather than python for consistency
* Fix some stylistic issues

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21642 3bd1e089-480b-0410-8dfb-8563597acbee
STYLE: some improvements in comments and naming for debug of DICOM export

TODO: write tests to identify and debug boundary cases.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@21643 3bd1e089-480b-0410-8dfb-8563597acbee