hmi-controller: Added IVI_HMI_CONTROLLER_LAYOUT_MODE_ORIG

While we have 4 existing policies for layout modes all of them
seem to be resizing the clients buffers to some layer based values.
Sometimes it may not look good to resize a client's buffers and
may make more sense to leave the buffers untouched. With this
additional policy, we now have a way to present the applications
buffers as the application wanted without any reconfiguration,
starting off at 0,0.

There can always be run time changes to the configuration if
need be from either the client or compositor side.

Signed-off-by: Satyeshwar Singh <satyeshwar.singh@intel.com>
clients: Fixed ivi_surface_listener event handler

It is illegal to have a NULL pointer mentioned for an interface
event handler. Having a NULL in place of a function pointer would
seg fault the client if the compositor were to send this event.

Fixed ivi_surface_listener to have a valid function (even though
it is empty). The only reason why clients like simple-egl were not
seg faulting today is because the ivi shell today is not calling
ivi_surface_send_visibility from anywhere today.

Signed-off-by: Satyeshwar Singh <satyeshwar.singh@intel.com>
ivi-layout: Fixed an issue where two clients run oneafter another would crash the compositor

Previously, what was happening was that when an ivi-shell client exit,
the ivi-shell got called first at surface_destroy which called
ivi_layout_surfaceSetNativeContent which removed surface_destroy_listener
and also set ivi_layout_surface to NULL. Since the destroy listener
was removed here, ivi-shell never got a chance to call the destroy
listener (westonsurface_destroy_from_ivisurface). Calling this
function is necessary to clean up all the linked lists where this
surface may be in. So previously, if you ran another application
after this first one had exited, then the compositor would crash
because the second application would try to access the same linked
list which had stale pointers to a surface that was already
destroyed.

Removing these 2 lines fixes this problem as now
westonsurface_destroy_from_ivisurface is called immediately after
surface_destroy and the surface's cleanup is successfully done.

Signed-off-by: Satyeshwar Singh <satyeshwar.singh@intel.com>