Improved AndroidNotifications

Added safety checking to make sure only valid notifications are
presented. Notifications are sent based off the underlying list stored
in PlayN rather. This prevents notifications from firing if they failed
to be cancelled during the cancelAll() method.

Changed automatic identifier method to throw an exception if no valid
identifier could be found. Note: this may cause schedule() to fail and
return null.

Added log messages to report if a notification fails to cancel or fails
to present.