Change File::Open to return a Resource instead of a Variant

This saves a conversion as the callers all really want a smart pointer to a File, and Resource is one step closer than Variant.