agent: Implement basics for API Versioning

This commit introduces the basics needed to support API versioning between
the ovirt-guest-agent and VDSM.

How the negotiation works:
- VDSM has as a default the apiVersion value set to _DISABLED_API_VALUE marking
  it as unsupported
- The guest agent sends its max supported version with every `heartbeat`
  message
- VDSM checks that `apiVersion` exists in the `heartbeat` message arguments
  - If it exists it retrieves the minimum common version and sends the
    `api-version` message with the common version as `apiVersion` argument
  - If it does NOT exist it and the apiVersion is not set to
    _DISABLED_API_VALUE it will set it to _DISABLED_API_VALUE, with the meaning
    that it is not supported at all by the guest agent on the other end.
- The guest agent on receiving this message makes it own check and sets the
  `apiVersion` to the commonVersion

- If VDSM sends the `refresh` command it also sends its `apiVersion` value
  however if it does not, capable guest agents are disabling the versioning
  support and will know it in pre-supported state as well.

NOTE: VDSM will never send an api-version message without being triggered.
      This is to ensure backwards compatibility.

Change-Id: I754d52009538914dd0143894b24ad48fbf13cb38
Signed-off-by: Vinzenz Feenstra <vfeenstr@redhat.com>