Move openrc to Common from Compute

Since there are user cases for having an openrc created for
other uses besides Compute, it makes sense to move the openrc
recipe logic into Common to allow it to be used as needed with
any project.
- Added new recipe/template for openrc
- Added tests
- Will create patches to remove openrc from Compute and to add it
to the all in one environment.

Change-Id: I2ca2280ef92d78bcf3e8a7d85eb91c9565413e17
Implements: blueprint moveopenrc
Allow packages to be updatable

In order for package updates to occur, package resources need to use
the upgrade action.  This is first phase of blueprint, to get some
consistency, next phase is to allow some update control.

Change-Id: I3e313e9f9b5adb10786a7f95a53e5254dda8466b
Implements: blueprint allow-package-updates
Git ignore .cookbooks/

Change-Id: Idebf08087dbfd4ea78a5c4b4c821fabd72dfd8de
Merge "Git ignore .cookbooks/"
openrc search failure

The old openrc code handled when identity role was not converged yet
by looking at attributes.  Add this support back in.

Change-Id: I738c0f619b364548b5fff1f06cc48dce2c8f7e84
Closes-Bug: #1316236