Persist primary roles in nailgun database

Currently we have a problem, when new controller added
with lower uid than already deployed controller.
In this case primary-controller will be assigned to new one,
but we already have existing controller which will conflict with
new one.

To overcome this issue primary role will be persisted in
database.
- Added primary attribute for pending_roles and roles tables
  by default primary will be False, it will be replaced only
  by special Cluster.set_primary_roles procedure
- primary flag wont migrate from roles to pending roles,
  because such migration means that node was reseted to bootstrap
- Primary roles used in logic of primary prefix assignment
- For roles that should have primary - has_primary: true
  should be added in openstack.yaml

TBD:
- migration from pending roles to roles, currently it is covered
  by deployment logic, but maybe there is some cases where we want to do
  it explicitly

Closes-Bug: 1390397
Change-Id: I94b0014e9b4e16b2f8f0f6b9a092effb116a33ea
Merge "Persist primary roles in nailgun database"