Add a LICENSE and Readme file.
Import initial partial port of the libzypp satsolver.
Define an interface for packages and move package code to separate namespace.

Ids are no longer needed, they are internal to the solver and not a part of
packages.
Fix author/copyright
Remove useless abstract methods, interface is enough
Add type/repositoryType and repositoryUrl package properties
Fix class name
Minor cleanups, add license property to the PackageInterface
Remove contains() from RepositoryInterface
Update naming of repositories
Fix tests and invalid use statements
Make ArrayRepository more extensible
Add base installer/downloader and ComposerRepository
Rename RelationConstraints to Links in the Package namespace.

Constraints have been generalised to allow matching requiring and providing
constraints against each other.
Use /usr/bin/env instead of /bin/env.
Rename PackageTest to MemoryPackageTest
Correct version contraint matching and add tests for various cases
Fix SpecificConstraint which only handles matching of instances of same constraint
It's called a repository, not a registry
Tests for MultiConstraints on versions