Fix QgsLayerTreeModel naming conventions and update Python bindings

I was using a mixture of terms 'symbology items' and 'legend nodes' for the same thing which was confusing
Fix potential crash when adding a group