Pass database connections to the result.

The database connection is now available from the result, that make it
possible to use Models between different database connections.
Add class Contao\Model\Registry.
Add a registry to each database connection.
Use the registry within models.
Only save modified fields.
Merge fields from result, to keep "magic" fields.
Make Collection iterable.
Show model registry in debug toolbar.
Use $this->objResult->numRows in Collection::valid().
Do not update unmodified fields.
Collection now implements countable.
TODO 4: Set each field in setRow.
TODO 16: Remove the result object from model.
Add method Model::getDatabase().
Accept Result or Database object in Model constructor.
Fallback to default connection if none given.
TODO 17: Remove the result object from collection.
Store previous value in Model::$arrModified.
TODO 14: Track primary key modifications.
TODO 5+6: Always update registered and insert unregistered models.