Backport d4c2ff4a, 2168bce9 and f2ebe08 from master.

This consists of the commit below plus two subsequent build fixes.

Cursor: Stop crashing when certain cursors are not found.

Not all cursor themes have all the types we have defined in
WaylandCursor::CursorType. When that happens, the corresponding entry in
cursors_ becomes NULL. We were then passing NULL to
wl_cursor_image_get_buffer() and crashing.

Fix it by falling back to a default cursor type in case
WaylandCursorData::GetCursorImage() fails to return a valid cursor.

TEST=Launch chrome or content_shell with a cursor theme that doesn't have
     "top_left" or another commonly used name, such as the default Wayland
     cursor theme.

(cherry picked from commit d4c2ff4aa81162aa379ff952cb4b82ce55b28eb4)

Fix Build.

(cherry picked from commit 2168bce9c7d608886cf24c52d61baf8611a094ef)

Fix the build fix in 2168bce.

../../ozone/wayland/input/cursor.cc:89:59: error: 'wl_cursor_image*
ozonewayland::WaylandCursorData::GetCursorImage' is not a static member of
'class ozonewayland::WaylandCursorData'
../../ozone/wayland/input/cursor.cc:89:59: error: 'CursorType' was not
declared in this scope
../../ozone/wayland/input/cursor.cc:89:76: error: expected ',' or ';' before
'{' token

(cherry picked from commit f2ebe08323b948ad2dfd9dfd4b3b1776b07c9234)