CA-102259: Refactor xenstore-watching code out of xenopsd

This code is potentially reusable by other components, so this patch disentangles the xenopsd-specific stuff from the generic xenstore-watching stuff.

Summary of the refactoring, from the point of view of xenops_server_xen:

 * Split IntMap watches into IntSet watches (domains being watched, moved to xenstore_watch) and IntMap device_watches (list of devices watched per domain, kept)

 * Moved several functions into xenstore_watch's new WATCH_ACTIONS interface:
    - the code that does an action depending on which watch fired (to watch_fired, also including fire_event_on_vm and fire_event_on_device),
    - renamed all_domU_watches (to interesting_paths_for_domain),
    - the device-specific bits of remove_domU_watches (in domain_disappeared, which also inherited the content of cancel_domU_operations),
    - definition of unmanaged domain (in unmanaged_domain), and
    - definition of what we want to do each time we notice a domain running (in found_running_domain).

 * Moved to xenstore_watch's WatchXenstore module:
    - list_domains (verbatim)
    - domain_looks_different (verbatim),
    - list_different_domains (verbatim),
    - watch_xenstore, with the following changes:
       (a) rename {add,remove}_domU_watches to {add,remove}_watches_for_domain (but don't take the device-specific bit in remove_domU_watches)
       (b) call the functions listed above through WATCH_ACTIONS, and
    - the code that creates the watch_xenstore thread (to a function "create_watcher_thread") (verbatim).
Install xenstore_watch as an ocamlfindable package

This enables it to be used by the rrdd plugins, for which the code lives in a different repository.
CA-106034: update device_watches when domain appears/disappears

When a domain appears, we need to initialise the entry in device_watches for
that domid. When a domain disappears, we need to remove the entry in
device_watches for that domid.

This was overlooked in the refactoring of CA-102259 -- the old semantics of
add_domU_watches and remove_domU_watches was not preserved as the watches map
was split into a set of domain watches and a map of device_watches.

Acked-by: Jonathan Davies <Jonathan.Davies@eu.citrix.com>
Signed-off-by: Mike McClurg <mike.mcclurg@citrix.com>
Ensure xenstore_watch.a is built before attempting to install xenstore_watch library
Merge pull request #1382 from jjd27/tampa-lcm-HFX-764

TAMPA: Add dependency required by HFX-764