QMake requies the inclusion of sub-projects syntax to introduce source
sub-directories, hopefully this will allow code completion in
QtCreator to function.
This change incorporates a reorganization of the GUI code with
widgets, validators, models, and item delegates being moved to
sub-directories.
Relax the requirements of the ForeignKeyDelegate and related
CandidateKeyFilter classes to allow them to work with constant model
pointers for both referenced and referencing models.