add provides, conflicts and satisfying_provided_by information to dependency manifest

in dependency manifest, there are two important tables:

 * satisfied_by - for each entry, key is the dependency constraint and value is
                  the package that satisfies this dependency constraint.

 * satisfying_provided_by - for each entry, key is the package that satisfies
                            some dependency constraint and value is another package
                            that provides that satisfying package (if any).