BUG: Fix compile error related to "WrapValue" unit methods

Following commit r22055 [1], three new methods have been introduced:
- WrapValueWithPrefix
- WrapValueWithSuffix
- WrapValueWithPrefixAndSuffix

[1] http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=22055

This was causing a build error on linux:

 In member function ‘std::string vtkMRMLUnitNode::WrapValueWithPrefixAndSuffix(std::string&)’:
 ../vtkMRMLUnitNode.cxx:183: error: no matching function for call to ‘vtkMRMLUnitNode::WrapValueWithPrefix(std::string)’
 ../vtkMRMLUnitNode.cxx:159: note: candidates are: std::string vtkMRMLUnitNode::WrapValueWithPrefix(std::string&)

Making the method const correct fixed the problem.

More details about the error are reported here: http://stackoverflow.com/questions/1565600/how-come-a-non-const-reference-cannot-bind-to-a-temporary-object

git-svn-id: http://svn.slicer.org/Slicer4/trunk@22060 3bd1e089-480b-0410-8dfb-8563597acbee
BUG: vtkMRMLUnitNodeTest1 use size_t instead of int

This fixes the warnings for linux brought by r22053

  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx: In function ‘bool TestScenesUnitNodeID(vtkMRMLScene*)’:
  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx:86: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx:92: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx: In function ‘bool TestUnitNodeAttribute(vtkMRMLScene*)’:
  /Slicer-TR/Libs/MRML/Core/Testing/vtkMRMLUnitNodeTest1.cxx:121: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

See Issue #1694
BUG: Fix annotation logic error

Two things here:
1 - Unused variable warning:
  Slicer4/Modules/Loadable/Annotations/Logic/vtkSlicerAnnotationModuleLogic.cxx:1998: warning: unused variable 'lengthUnit' [-Wunused-variable]

This is fixed by deleting the unused pointer

2 - ostringstream error:
  /Slicer4/Modules/Loadable/Annotations/Logic/vtkSlicerAnnotationModuleLogic.cxx:2018: error: no matching function for call to 'std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(double)'
  /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/sstream:433: note: candidates are: std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(const std::basic_string<_CharT, _Traits, _Alloc>&, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
  /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/sstream:412: note:                 std::basic_ostringstream<_CharT, _Traits, _Alloc>::basic_ostringstream(std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>]
  /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/iosfwd:79: note:                 std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::basic_ostringstream(const std::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >&)
  /Slicer4/Modules/Loadable/Annotations/Logic/vtkSlicerAnnotationModuleLogic.cxx:2107: error: no matching function for call to 'vtkMRMLUnitNode::WrapValueWithPrefixAndSuffix(std::string)'
  /Slicer4/Libs/MRML/Core/vtkMRMLUnitNode.h:73: note: candidates are: std::string vtkMRMLUnitNode::WrapValueWithPrefixAndSuffix(std::string&)
  /Slicer4/Modules/Loadable/Annotations/Logic/vtkSlicerAnnotationModuleLogic.cxx:2128: error: no matching function for call to 'vtkMRMLUnitNode::WrapValueWithPrefixAndSuffix(std::string)'
  /Slicer4/Libs/MRML/Core/vtkMRMLUnitNode.h:73: note: candidates are: std::string vtkMRMLUnitNode::WrapValueWithPrefixAndSuffix(std::string&)

This is fized by using the ostringstream more properly.

See Issue #1694
ENH: Refactor the "WrapValue" methods in unit node

The name is changed to be clearer and more standard with regards to the
application's API.
Support for vtkVariant is added for a better interface with vtk.
The only exposed method now is GetDisplayTextFromValue(), the other methods
are protected as they are of little interest for the user.
All these methods are also virtual now to allow potential customization.

See Issue #1694