In case there is an error fetching file information, only inspect the result if it is in fact an array.
Further fine-tune the options to wp_remote_head to ensure it behaves as we'd like. Because WordPress doesn't follow redirects by default for HEAD requests, we were never getting a valid result for e.g. files hosted on Libsyn.
Take care to update post metadata when we fetch the file's size. Because this is an expensive network-based operation, we don't want to redundantly do it every time through e.g. a page load.