[BB-2291] New mechanism and UI for tracking deployments
Created by: xitij2000
This PR changes the way deployments work in Ocim:
- It adds a new Deployment model that tracks deployments
- A deployment includes one or more AppServers that form a pool
- It adds support for specifying a minimum number of active appservers
- It can check the status of a pool, which could be healthy (all appservers online), unhealthy (fewer than required appservers online), offline (no appservers online), or provisioning (appservers being set up)
- It allows tracking redeployments at the deployment level, allowing for batch redeployments with multiple appservers.
- It maintains and track changes between deployments, potentially creating an edit history that can be played in either direction.
- It provides an API to manage deployments
- It allows differentiating between different kinds of deployments, such as batch deployment, user deployment, admin deployment etc.