Put all the extraction operation in a proper separated class

This way we can implement different type fo backends
Implemented 2 different python-libarchive backends

see comments in the 2 backend for more info