Widgets refactoring

This is a major refactoring of the editor widget system.

All editor widgets are modularized and ported to the new API, therefore making maintenance easier and offering a common interface.

It introduces a new QgsAttributeForm class, which can be used as a widget and easily embedded (as oposed to a dialog as before).

Wherever possible backwards compatibility was maintained. All 2.2 projects are opened as before. On the other hand, editor widget settings from projects saved with 2.4 will not be backwards compatible.
Plugins should be able to use the old API which has been marked as deprecated until it is finally removed after a transition period.

It incorporates pull requests #1351 and #752

It fixes the following issues:
 * 10281
 * 7319
 * 7013
 * 9335
 * 4417
 * possibly others

Most important thing to test: Do your forms from 2.2 projects still open fine!