CP-4325: Split License_check.check_expiry up into two functions.

Signed-off-by: John Else <john.else@citrix.com>
CP-4325: Implement pool.get_license_state

Signed-off-by: John Else <john.else@citrix.com>
CP-4325: Add pool.license_state getter to CLI

Signed-off-by: John Else <john.else@citrix.com>
Add Test_common.make_pool

Signed-off-by: John Else <john.else@citrix.com>
Add high-level unit testing framework

Signed-off-by: John Else <john.else@citrix.com>
CP-4325: Add tests for pool-wide license logic

Signed-off-by: John Else <john.else@citrix.com>
Whitespace: create_misc.ml

$ camlp4o -printer o -no_comments ocaml/xapi/create_misc.ml | md5sum
016846314b732c13ecadc24ae47ec3f6  -
$ git checkout HEAD^
$ camlp4o -printer o -no_comments ocaml/xapi/create_misc.ml | md5sum
016846314b732c13ecadc24ae47ec3f6  -

Signed-off-by: John Else <john.else@citrix.com>
CP-4319: Add field host.cpu_info:socket_count

Signed-off-by: John Else <john.else@citrix.com>
CP-4319: Pass number of CPU sockets to v6d

Signed-off-by: John Else <john.else@citrix.com>
CP-4324: Implement pool.apply_edition

Signed-off-by: John Else <john.else@citrix.com>
CP-4324: Add pool.apply_edition to the CLI

Signed-off-by: John Else <john.else@citrix.com>
CP-4321: Host edition upgrade rules

Free and XenDesktop licenses are left as is.
Advanced, Enterprise and Platinum licenses are converted to per-socket
license.
Anything else is made into a free license.

Signed-off-by: John Else <john.else@citrix.com>
Merge pull request #1129 from johnelse/sku-flattening-xapi-clearwater

CLEARWATER: CP-4102: xapi licensing changes