Enhancements to suport unrar from File or StringIO

As python's zipfile module supports initialize a ZipFile with an already opened file or an instance of `StringIO`, so I did some hacks to make it possible for RarFile :)