Throw appropriate events during deletions

Also while at it do some minor code reorganization
Add deleteFigure() to FigureServices and call appropriately