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