ENH: Factor out scripted module reload function into 'slicer.util'

At least two versions of the code were used to reload a scripted module
were existing. This commit add the most recent version into
the function 'slicer.util.reloadScriptedModule' and update the
Slicer modules to use it.

Note that since not all module implements the 'cleanup' function,
an additional test has been added to check if the method is available.

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