Decode idrac_firmware into array of hashes

idrac_firmware is going to be a string.  Decode it before use.

Also a bug fix around forced_restart that was a string and not bool
Could we parse the string in the asm::firmware resource using the parsejson puppet stdlib function? It doesn't really make sense to have the argument be a json-encoded string