BUG-FIX: Add padding to fourier-log and fourier-ratio deconvolution to fix the wrap-around problem and increase the efficiency of the fft calculation by changing the size of the spectra to a multiple of 2. Also replace the ffts by real ffts.
Add crop option to fourier-log deconvolution method and use nan_to_num to turn nans into 0s to avoid erros when deconvolving noiseless data
New DraggableVerticalLineWithLabel widget
Add unfinished adjust_position method to Model
Improved plotting perfomance by using blit for widgets and SpectrumLine and Model.adjust_position now correctly links the line position to the component position.
Configure all relevant components to work with the new adjust_position method
Add disable_adjust_position and rename adjust_position to enable_adjust_position
BUG-FIX: Model.enable_adjust_position was raising an error due to a wrong index_in_arry value
Merge master
BUG-FIX: when blitting the stuff outside of the axes was not animated
Add DraggableLabel
Add the new Model.enable_adjust_position to the UserGuide
BUG-FIX: Model.enable_adjust_centre was raising an error if a plot was not active. (Reported by Magnus)
Merge branch 'master' into model_adjust_centre
BUG-FIX: the adjust_position was also adding a position widget when the parameter was twinned
Remove debugging print
Remove inherited self.blit attritube
Some necessary modifications to the Parameter and EELSCLEdge machinery to enable bidirectional communication between the widget and the value of the position Parameter when using enable_adjust_position

- Add twin_inverse attribute to Parameter
- EELSCLEdge.onset_energy becomes the main way to set the position of a CL edge. EELSCLEdge.energy_shift is now a twin of onset_energy and it might be removed in a future release.
- Enable bidirectional connection between the widget and the parameter value.
- Document twin_function and twin_inverse function in the User Guide
Add __len__ method to Parameter
Parameter.value is now always a tuple when len>2