Categorized and graduated renderer enhancements

Enhancements to categorized and graduated renderers and widgets as follows:
  1) Added units and number of decimal places to graduated renderer labels
  2) Improved responsiveness to changes in color ramp, inverted colour ramp, and other options in GUI
  3) Retain symbol when switching between simple, graduated, categorized, and other renderers

Also with second push:
   4) Improved labelling of StdDev calculation mode
   5) Added manual editing of class breaks in text window - allowing easy cut/paste etc.

Also corresponding SIP updates

Reasons for changes are:
1) Allow changing colour ramp and symbol without reclassifying (and thereby losing any customisations of classification and legend)
2) Most common changes I have to make to labels relate to adding units and changing decimal places, so have automated this
3) For conversion between renderers seems sensible to retain at least the primary symbol.  

Notes:
1) Chose to have changes to ramp and inverted ramp reflected immediately in classifications.  I did consider using a "Reapply colour" button, but note that some changes are already implemented immediately (eg changing number of classifications in graduated renderer automatically reclassifies), so it seemed sensible to me to retain a consistent approach.  The only disadvantages I can see are 
* It is not obvious to the user how to apply a different colour ramp by looking at the dialog
* Reapplying the current color ramp (for example to remove colour customisations) requires changing it to something else and back again.

2) Could possibly have done more with graduated renderer labelling options, eg using some sort of format string to define labels rather than using number of decimal places and units.  Given that this is adds to the API for the  renderer this may be a consideration in terms of applying this change.  I think the approach used meets the commonest requirements and could be adapted to work with a custom string (albeit a bit messily) in the future.  

3) Possibly could do more in terms of converting between renderers - at the moment I'm just copying symbols()[0].  I think this is probably the 90% user case, and is in any case a good start.

4) SIP changes - I think I have made these changes correctly - not very familiar with SIP so done by copying existing code.  Would be good to have these confirmed.

5) Haven't updated any documentation corresponding to these changes.  Main documentation change  relates to modified graduated symbol renderer dialog

6) Also could do with more doxygen formatting .. wet weather at weekend didn't last long enough!

7) In terms of proposed QEP process I wonder if this level of UI/API change would qualify.  Probably would I think?