Fix a problem where if a minion went missing, we still thought the pod was running.

Also convert some tests to table driven.
Sadly it looks like you can't take the address of a const, so we can't hand back a pointer, so I added a None state that we only return in cases of error.