introduce abstraction for phar to be created
remove direct dependency to external class, this will allow to get rid of the PharComposer dependency in the bundlers
split logging into separate class
remove dependency to PharComposer in bundlers
refactor bundlers so that they return a bundle

A bundle represents the list of resources to be added to the target phar. This allows us to decouple the bundlers from actually knowing the target, and keeps their single responsibility to collecting the resources. Likewise, the responsibility for adding resources stays hidden in the target phar. Additionally, the PharComposer only needs to translate a package into a bundle, but doesn't need to know that actually bundlers are involved.