model/view for layer/field selectors

This implements a model/view for selecting layers and eventually their corresponding fields.

The models can be used directly on top of widgets.
Anyway, I implement sub-classes of QComboBox since the connection between layer and fields models can only be made by the selection model. And, having the field model changed by a change in selection in the layer combo is not a good idea (it must be changed on currentItemChanged and not selection changed).

For testing, I implemented these model in two places:
- DXF export: a checkable list of layers
- Atlas: a layer combo related to a field combo

If approved, I will add the SIP files.
Also, my intention is to extend the field model and combo to handle expressions (since it is used in many places).

Thanks a lot to @NathanW2 for his initial python model: https://gist.github.com/NathanW2/d2bf29d9043c5658dab2
and to @wonder-sk for his advices.