Remove superfluous "struct"
Improve _init_vio()

* move code from SoundFile.__init__() int _init_vio()
* the dictionary with callback functions is now "hidden" in _init_vio()
* the invocation of sf_open_*() is now clearer
* the error message is at the right place
* _init_vio() is now a "real" method because self is actually used
Remove support for _length attribute of file-like objects

See also #1.
Remove unnecessary local variables
Change "vio" to "virtual_io"

As suggested by @bastibe in #31.
Add repr() in error message

This adds single quotes to strings and it avoids an error with string
formatting if "name" happens to be a tuple.

See also #31.