Do not fail if ShadowHashData doesn't exist
It's possible that a user account on a 10.7 or 10.8 machine
could still have an old-style password hash that's been stored
on-disk versus being stored in the user's plist (this occurs
if a machine has been upgraded from 10.6 to 10.7 or 10.8).
With this edge-case, the ShadowHashData key would be absent
in the user's plist, and thus the shadow_hash_data variable would
be false and not a Hash (as is expected). Previously, there was
no check for if the shadow_hash_data key was a Hash (it was assumed).
This commit adds that check and handles a false value without failing.