Run clang-tidy modernize-use-override to remove all the redundant
virtual keywords from overridden methods, and add some missing
overrides.
Another benefit is that this has also added the overrides
on destructors, which will cause a build failure if a base
class is missing a virtual destructor.
This allows registration of item creation actions which create
items with an existing item type, but custom creation functions.
E.g. allowing actions for creation of ellipse/triangles/etc
from a single layout item type.