Initial feature-dist

 * extends BaseDumper, implements interface
 * put $keys into BaseDumper

 * WIP WIP WIP WIP
 * BaseDumper for utilities
 * interface to enforce 'dump()'
 * feature:
   * supports git
   * supports zip output
   * basic test to cover feature

 * add @todo for later
 * add vendor namespace to package name

 * add extension to getFilename() so we don't need to switch in there (HT, @naderman)

 * add extension (obviously 'zip' in ZipDumper)

 * create archive in destination dir (provided by __construct())

 * condensed ZipDumper
 * moved code to BaseDumper (hopefully easier re-use)

 * use ProcessExecutor from BaseDumper

 * fix assignments in __construct()
 * allow injection of ProcessExecutor

 * fix parameters

 * fix regex

 * write in 'system temp dir'
 * update test case (oh look, a duplicate regex)

 * move working directory related to BaseDumper

 * add quotes

 * place holder for these methods

 * use PharData to create zip/tar when necessary

 * add placeholder calls
 * add call to package() using PharData

 * finish downloadHg(), downloadSvn()

 * put to use

 * make BaseDumper abstract (to force extension)
 * make BaseDumper implement Interface (makes for less code in the implementation)

new functionality for dumping as .tar.gz

tar instead of tar.gz, new abstract dumpertest class

creates a local git repo instead of fetching a remote one

more oo-ish version of it

no constructor

 * refactor tests to be less linux-specific (used Composer\Util to wrap calls)

 * make filename only the version

 * various cs fixes (idention, tabs/spaces, doc blocks, etc.)
 * fixed a typo'd exception name

 * refactored downloading:
   * removed download*() methods
   * added dep on Composer\Factory to setup a DownloadManager instance

 * update CS with feedback from @stof

 * ArrayDumper doesn't extend BaseDumper anymore (hence no conflict on the interface)
 * move keys from BaseDumper back to ArrayDumper
 * interface now declares dump() to always return void

Apparently I had to update the lock.

CS fixes (tabs for spaces)
Bugfix: sprintf() was missing.

Fix docblock for @stof. ;)

Pull in lock from master.

Update lock one more time (hope it still merges).

whitespace

Revert ArrayDumper static keys
Moved archive Dumpers into its own Archiver package
Refactored the archiver package
Changed Package class due to upstream changes
Checks process execution
Update interface to merge vcs with basic archivers
Checks support before downloading the package
Merged zip & tar archivers
Fixed several typos

- break at first archiver supports
- use standard directory separator
- change exception message
- remove the BaseArchiver since tar & zip archivers have been merged
- plus coding style
Create ArchiveManager with the Factory
Fix how download manager is constructed

This fixes tests due to upstream changes.
The createDownloadManager in the Factory now takes the config as extra
parameter.
Fix workflow & typos
Cleaned archiver tests
Reorder ArchiveManager parameters to make the download manager optional
Git can handle commit references in git archive just fine so use them
Use a saner file name for package archives
Implement a basic archive command

It allows creating archives with the archive manager given a package/version
pair.
Remove Mercurial and Git Archivers as they cannot implement exclude rules
Define an option to exclude files in the archive command
Allow archiving the current project with composer archive