Add more robust handling of daemon crashes

It seems the new fingerprint daemon doesn't recover as quickly as before
and there's a finite chance reconnecting immediately will fail.

This changes the framework to be more robust about recovering by:

1. explicitly connecting to the daemon in isHardwareDetected()
2. ensuring we remove the current client when daemon death is detected
3. reset the daemon whenever we get HW_UNAVAILABLE so we try again

Test: manually kill daemon and verify FingerprintService reconnects

Partial fix for bug 36181191

Change-Id: Id530ed62be58b33af5b5b60083f3a69e4e8cd8bf
1 file changed