Additional libredcarpet testcases for ZENworks functionality.

FIXME: xfail contains testcases which currently fail

Install a package which has a require provided by multiple available packages.
Package A requires 'a' (any version)

1.
package B
  provide 'a'
package C
  provide 'a'
result
  either (equal)

2.
package B
  provide 'a' = 1.0
package C
  provide 'a' = 2.0
result
 either (equal)

3.
package B
  version 1
  provide 'a'
package C
  version 2
  provide 'a'
result
  either (equal)

4.
package B
  size = 1234
  provide 'a'
package C
  size = 123
  provide 'a'
result
  install C (prefer smaller package (less changes))

5.
package B
  version 1
  provide 'a'
package B
  version 2
  provide 'a'
result
  Install B-2 (prefer newer package)

6.
package B
  version 1
  size 123
  provide 'a'
package B
  version 2
  size 1234
  provide 'a'
result
  install B-2 (prefer newer package even if it's bigger)

7.
package B
  size 123
  provide 'b'
package C
  size 12
  provide 'b'
  require 'd'
package D
  size 12
  provide 'd'
result
  install B (prefer less changes)

8.
package A
  provide 'a'
  require 'c'
package C
  provide 'c'
  require 'd'
package D
  provide 'd'

package E
  provide 'a'
  conflict 'F'
package F
  provide 'F'
  installed
result
  install A, C, and D (prefer installation over removals (if it makes sense))

9.
package B
  version 1
  channel subscribed
  provide 'b'
package C
  version 1
  channel not subscribed
  provide 'b'
result
  install B (prefer packages from subscribed channels)

10.
package B
  version 1
  channel subscribed
  provide 'b'
package B
  version 2
  channel not subscribed
  provide 'b'
result
  install B-1 (prefer packages from subscribed channels, even if there's newer
  package on unsubscribed channel)

11.
package B
  provide 'b'
package C
  version 2
  provide 'b'
package C
  version 1
  provide 'b'
  installed
result:
  Upgrade C-2 over C-1 (prefer upgrades over new installations)

12.
Nothing installed, select A and require B-3.i386 (prefer highest version)

package A
  require 'b' > 1.0
package B
  arch = i586
  version 2
  provide 'b' = 2.0
package B
  arch = i386
  version 3
  provide 'b' = 3.0
package B
  arch = i586
  version 1
  provide 'b' = 1.0
  installed
result:
  Install A, upgrade B-3.i386 to B-2.i586 (prefer the latest version,
  arch is not used in vercmp)

13.
Have B-1.i586 installed , select A and require B-2.i586 (prefer matching arch over higher version)

package A
  require 'b' > 1.0
package B
  arch = i586
  version 2
  provide 'b' = 2.0
package B
  arch = i386
  version 3
  provide 'b' = 3.0
package B
  arch = i586
  version 1
  provide 'b' = 1.0
  installed
result:
  Install A, upgrade B-3.i386 to B-2.i586 (prefer the latest version,
  arch is not used in vercmp)
 like 12, but upgrade to B-2.i586 instead
  (prefer equal arch over higher version)

14.
 like 12, with i686 version present
 upgrade to B-2.i586 instead
  (prefer equal arch over higher arch)


