BUG: Ensure volume node without default storage node can be saved.

This commit allows volume to be saved from python using
"slicer.util.saveNode()".

More specifically, this commit (1) factors out the code allowing to
create and add the default storage node to the scene  and (2) ensures a
call to "qSlicerCoreIOManager::saveNodes" work when there are no storage
node associated with a volume node.

This is needed because within the "saveNodes" function, calling the
function "qSlicerNodeWriter::extensions(node)" expects a storage node
to be present.

Thanks to Julien Finet for reviewing.

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