Add `versionutils` for version compatibility checks

There are a number of different version compatibility checks performed across
OpenStack projects, with Nova alone having at least four within it:

    1) Nova agent version check

    2) XenAPI Dom0 plugin version check

    3) RPC API version check

    4) Nova object version check

Despite similarities between all of these checks, each case chooses to
implement its own.

This patch provides a mechanism for standardizing the version checking process
by providing a single, well-tested function, `is_compatible` that the four
cases listed above (and others) can use instead.

Change-Id: Icc5ff6b7f3914df60f78b9a14806413a063dac0f
Merge "Add `versionutils` for version compatibility checks"