detect: Handling empty controllers

On some HP Proliant DL380 G7, we had the following configuration :

root@(none):~# hpacucli ctrl all show
Smart Array P410 in Slot 1                (sn: PACCRID112414SL)
Smart Array P410i in Slot 0 (Embedded)    (sn: 5001438014803090)

The first controller in this list had no disks while Controller P410i on
Slot 0 had all the physical disks.

The existing code was trying to get all the physical disks from all the
controllers and exited if the "ctrl slot=<x> pd all show" failed.

In this particular setup, we found no disks on Slot 1 (which was the
first controller listed by hpacucli) and so exited.
As a result, no physical disks were found on this server.

This patch does add the exception management inside the controller loop
to insure at least all controllers got tested once.

A new information message is added to inform user that a given Slot didn't provided any disk like in :

    Info: detect_hpa : controller 1 : The specified controller does not have any physical drives on it.