Fix incorrect argument handling for expire in NodeExpirer
Since it takes an optional key it needs to use that key if it exists. This
also resolves an error undefined method 'name' for #<Hash... that could
occur when posting facts over REST if the yaml didn't have a proper name
variable. This will still fail, but at a point that gives a much better error
message.