Merge pull request #908 from vstakhov/master

Universe and solver rework
Fix possible use uninitialized variables
Initialize a variable
Appease gcc 4.9
Fix unused ret
Add heuristic to process upgrade chains.
Remove compiler warning.
Fix upgrade chain processing heuristic.
Implement ambiguity resolving in the solver.

If we have something like 1 local and M remote, we remove M remote packages
from *install* request and add a single local package to *delete* request
allowing solver to choose the appropriate package.

If we have N remote and 0 locals, then choose the most recent package *or* if
all packages are equal a package from any repository.

For solver prefer newer packages but otherwise prefer packages from the same
repository
Fix pkg query with complex evaluation string
Add solve rules to provide variables.
Fix multirepo upgrade.
Update to pre-alpha4.
Fix forced upgrade.
Fix units propagation and conflicts.