goaidentity: don't leak credentials caches

krb5_cc_default doesn't return a shared resource, and
the results need to be freed. Likewise,
get_new_credentials_cache needs to be freed.

https://bugzilla.gnome.org/show_bug.cgi?id=729874
identity: dramatically simplify alarm logic

The GoaAlarm code is unwieldy. Primarily this is because
it supports resetting the alarm after creation, but can't
clean up old state right away due to a bug in GLib
(bug 705395). All this complexitly is leading to bugs, and
caos.

This commit introduces some zen to the situation by making
GoaAlarm immutable and much simpler. Now to reset an alarm,
the identity code just instantiates a new one and destroys the
old one.

https://bugzilla.gnome.org/show_bug.cgi?id=729718