Given an filename return the basename (filename without the
archive and compression extensions), archive format and
compression method used.
@param filename: the name of the file
@type filename: string
@return: tuple containing basename, archive format and compression method
@rtype: C{tuple} of C{str}
>>> Archive.parse_filename("abc.tar.gz")
('abc', 'tar', 'gzip')
>>> Archive.parse_filename("abc.tar.bz2")
('abc', 'tar', 'bzip2')
>>> Archive.parse_filename("abc.def.tbz2")
('abc.def', 'tar', 'bzip2')
>>> Archive.parse_filename("abc.def.tar.xz")
('abc.def', 'tar', 'xz')
>>> Archive.parse_filename("abc.zip")
('abc', 'zip', None)
>>> Archive.parse_filename("abc.lzma")
('abc', None, 'lzma')
>>> Archive.parse_filename("abc.tar.foo")
('abc.tar.foo', None, None)
>>> Archive.parse_filename("abc")
('abc', None, None)