QgsFeatureRequest::NoGeometry is optional for non-geometry-layers
[attrtable] Selection model and request filter
* With a selection model, the way the attribute table handles selections
  can be customized. E.g. synchronized to layer selection or used to pick
  features.
* With request filters, the visible features on an attribute table can be
  limited. This will effectively reduce the subset of features the attribute
  table works on. Additional filters by means of a proxy model can of course
  further reduce the visible subset subsequently.
Move addFeature, startEditing and stopEditing vector layer actions
to an abstract base class QgsVectorLayerTools in the gui library,
so these can be reimplemented for a custom app, but can also be used
from plugins or in the gui library.
Add relations capabilites and widgets
Add relation unit test