Remove `stream` logic; it appears `libsndfile` needs to be able to rewind the file object’s position.
* Refactor `vio` struct creation to a distinct method
* Move file object size logic into `vio_get_filelen` callback
Actually call `self._init_vio`...