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
363fca0fe17fb3e89753b6aa62add69f  -
$ git checkout HEAD^
$ camlp4o -printer o -no_comments ocaml/xapi/create_misc.ml | md5sum
363fca0fe17fb3e89753b6aa62add69f  -

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>