Added Deployment model

This patch is the first step of the separation of deployments from
tasks. The Deployment model represents an installation of OpenStack.
This model is related with the Task model through a many-to-one
relation. Now the relattion is optional because Task.deployment_uuid can
be nullable. It will be fixed in next patches.

The db.api was extended by a deployment function. The functions provide
operations to create, get, update and delete deployments.

This patch also adds index for the field uuid of the Task model.

Change-Id: I41bef0ccebdc27cd97b1db663ff3d8a9f0a5509d
Implements: blueprint independent-deploy