core/harness: don't use local static variable in instance method

The use of a local static variable in a non-static class method is
only instantiated once and used by all instances of that object.

In core::test::Harness::client() we were statically creating the
result (client) with the current instances' display_ member.  Hence,
if a second core::test::Harness instance was created using a
different display_, the client() return value for the second instance
would be that of the first instance (i.e. it uses the first instances'
display_).  This is not what we'd expect/want as an API consumer.

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
core/pointer: Add button notify signal and use wl_surface type for focus

Add a button notify signal that tests can listen for.  This allows tests
to do more things (e.g. start a drag op) when button events occur.

Also, use the wl_surface* type for focus_ instead of Surface* type since
the wl_surface_data_get cannot be guaranteed to be a Surface* type.

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
core/dnd: Add simple drag and drop test case and wrappers

Added wrapper classes for the wayland dnd interfaces with
sanity assert checks and a simple dnd test case.

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>