Reads surface data from a specified compressed filer stream, creates a surface, and returns a smart pointer to it.