Fix wrong pattern count in keyguard pattern security view.

This fixes a bug introduced in I085c5ec8 where keyguard attempts to emulate
slippery windows with views.  In order to do so,  the code was overloading
dispatchTouchEvent().  It would allow the super (a ViewGroup) to dispatch
the events and then would dispatch them itself to sub views.  In the case
where an event overlaps an actual child view, it would  result in 2 copies of the event
per window layer (there are 2).  This results in 2 events per layer for the
top two views in the hierarchy. So each actual pattern attempt would count as 4
attempts to the system.

The solution is to overload onTouchEvent() at each level in the view hierarchy,
which means that we ignore events that were already handled by a child window
of the parent.

This change also disables slippery windows for keyguard because it causes
vertical patterns to be ignored.

Fixes bug 7191277

Change-Id: I4df217f2bf382134d93113b8d55b0d71e0e23677
4 files changed