Expose: If rescale is not needed, reuse existing Window rather than creating a new one.
Expose: Refactor to use global variables rather than passing pointers around needlessly.

Also, always use disable method rather than only freeing pointer as it may be
enough if the plugin cannot be enabled for example if GrabKey failed.
Expose: Ignore ButtonRelease event until plugin is enabled.

This is only meaningful after selecting a Window with Expose plugin.
Cosmetic.
Reset the _NET_SUPPORTED GetProperty cookie once the reply has been received.

Otherwise subsequent calls to check whether an Atom is supported by the WM
will reuse the same cookie and obviously fail.
Expose: Selecting a Window to show through a mouse button was completely broken.

Sending a _NET_ACTIVE_WINDOW ClientMessage to the root Window seems to not be
enough (at least with Awesome and confirmed by wmctrl) when the selected
Window is on a different desktop than the current one, so request to change
current desktop through a _NET_CURRENT_DESKTOP ClientMessage if necessary.

Bump xcb-ewmh required version as window was not given in ClientMessage, thus
it was not working with Awesome 3.4.x as it can manage several root Windows
and use window ClientMessage attribute to determine which root Window it
affects.

Also, add missing requirements for Atoms.
Expose: Fix Floating point exception (occurred when there was a single non-rescaled window).
Expose: There is no reason to exit if GrabKey fails, just disable the plugin.
Expose: Add warning messages explaining why plugin has been disabled.