The error messages from reading nvram have little useful info. This change introduces a storage leak that leaves the nvram file name around for later error printing. The storage leak is trivial and hence worth the cost, given that we now have a usable nvram file name. Error checking is also a lot more useful.