Automatic update of label and neighboring ranges boundaries in graduated renderer

Currently, when the bounds of a graduated renderer are manually edited, the labels have to be manually modified as well. This is quite time consuming and has been the cause of several complaints, for example: 

* http://hub.qgis.org/issues/9312
* http://hub.qgis.org/issues/9900 
* http://hub.qgis.org/issues/10203

This pull request allows to automatically update the label to follow the range, but the label will be updated only if it has not been manually modified.

I also added a checkbox allowing to link ranges boundaries. Editing the boundary of a range will automatically update the corresponding boundary of the other corresponding range (above for lower bound, below for upper bound). This is what is wanted most of the time, but it is also possible to uncheck the checkbox and freely edit as it is now.

What do you think?