BUG: Ensure RemoveAllMarkups also invoke MarkupRemovedEvent

This commit improve the API consistency by ensuring the event will
be sent also if RemoveAllMarkups is called.

Similarly, the function "SetLocked" is called instead of directly
setting the ivar, doing so will ensure that the LockModifiedEvent
is also invoked.

Note that the pair StartModify/EndModify is used to ensure the ModifedEvent
associated with the markups node is invoked at the end if it applies.

For sake of consistency, the function RemoveAllTexts() has been added.
Since no text is added/removed when function Add/RemoveMarkup are called,
it doesn't make sense to clear the text when removing markups.

Running the test py_AddManyMarkupsFiducialTest doesn't show any decrease
in time with/without this patch. (Ubuntu 13.10 / debug build)

With: 24.17 sec, 26.65 sec, 24.01 sec (3 runs)
Without: 26.59 sec, 27.04 sec, 24.72 sec (3 runs)

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23809 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: Add new DICOM export feature and scalar volume plugin

DICOM export dialog and tag editor widget are new widgets for DICOM export of all kinds of data in the new DICOMLib directory of the Scripted module folder. The existing DICOM plugin mechanism is used, but extended with an export function. Although the existing DICOMLoadable python object still works, C++ containers have been added to ensure C++ support of DICOM import/export. DICOMDataExchange.py was split into DICOMExportScalarVolume.py and DICOMExportScene.py.
See all details, including design considerations and usage information here:
http://www.slicer.org/slicerWiki/index.php/Documentation/Labs/DICOMExport

Closes #3163

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23810 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fixed export directive in DICOM subject hierarchy plugin

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23811 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Fixed linux build warnings

Also fix Subject Hierarchy failing python self tests.

Fixes #3910

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23812 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: 3911. Fixed crash on change of visibility of ModelHierarchy nodes introduced by making them part of SubjectHierarchy.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23813 3bd1e089-480b-0410-8dfb-8563597acbee
ENH: enable parsing of Philips DWI datasets

Philips private tag added to allow parsing multi-b acquisitions as multivolumes by the plugin.


git-svn-id: http://svn.slicer.org/Slicer4/trunk@23814 3bd1e089-480b-0410-8dfb-8563597acbee
COMP: Merged 'master' of https://github.com/Slicer/Slicer

Conflicts:
	Applications/SlicerApp/Testing/Python/SubjectHierarchyGenericSelfTest.py
ENH: Use Slicer4-EMSegment-LabelMapVolumeNode branch

Slicer4-EMSegment-LabelMapVolumeNode branch uses vtkMRMLLabelMapVolumeNode for label maps
ENH: Convert ScalarVolumeNode labelmap to LabelMapVolumeNode on scene import

When reading a scene that was saved with an old version of Slicer, then label maps are stored in vtkMRMLScalarVolumeNode with label map attribute set to 1.
Added a check for this case and handle it by converting the vtkMRMLScalarVolumeNode to a vtkMRMLLabelMapVolumeNode during import.