re-generate legend: re-use old as much as possible

Re-use as many properties from the old legend in the new (re-)generated legend as I could figure out how to deal with for now.
Perhaps the use of copy.copy() or copy.deepcopy() might improve this code.
Currently a string comparison for 'None' is made:
old_legend.get_title().get_text() != 'None'
this should be circumvented. If someone really wants to have the letters "None" as a legend title the code most likely will break. Perhaps there is an other criteria that can be evaluated to figure out if there actually is a legend title or not...

Overall it might be worth to show certain properties of the legend in a (new) tab of the "Figure options" window. So they could be changed on the fly from within the gui...