Reinstallation and downgrade require authorization

Added new policy actions:
 * org.freedesktop.packagekit.package-reinstall
 * org.freedesktop.packagekit.package-downgrade

The first does not depend or require any other actions to be authorized
except for org.freedesktop.packagekit.package-install-untrusted in case
of reinstallation of not trusted package. The same applies to second one
plus it implies org.freedesktop.packagekit.package-install action (if
the user is authorized to downgrade, he's authorized to install as
well).

Now the authorization can spawn up to 3 asynchronous calls to polkit for
single package because each transaction flag (allow-downgrade,
allow-reinstall) the client supplies needs to be checked separately.
glib: Add support for reinstallation and downgrades

New transaction flags:

 * PK_TRANSACTION_FLAG_ENUM_ALLOW_REINSTALL
 * PK_TRANSACTION_FLAG_JUST_REINSTALL
 * PK_TRANSACTION_FLAG_ALLOW_DOWNGRADE
Add reinstall and downgrade support to pkcon

pkcon receives two new flags:
 * --allow-reinstall
 * --allow-downgrade

They shall be used with *install* command.
hif: Add support for reinstall and downgrade

HIF backend receives support for package reinstallation and downgrades.