Don't crash when canceling alarms if a direct listener is present

If a direct listener alarm attempts to match a regular
PendingIntent alarm, it will attempt to fetch the binder of the
regular alarm's direct listener, which is null, and crash the
system with an NPE.

Bug: 25823676
Change-Id: I85fb98b43436930a2513274dc5ab408f7d41d97f
diff --git a/services/core/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
index f9d9950..d721fa1 100644
--- a/services/core/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -2167,7 +2167,7 @@
         public boolean matches(PendingIntent pi, IAlarmListener rec) {
             return (operation != null)
                     ? operation.equals(pi)
-                    : listener.asBinder().equals(rec.asBinder());
+                    : rec != null && listener.asBinder().equals(rec.asBinder());
         }
 
         public boolean matches(String packageName) {