Normalize.hs: fix further dependency simplification

The code tried to simplify original condition,
not the next iteration.
Dependency/Normalize.hs: fix 'remove_empty' pass, implement basic 'flatten' pass

'remove_empty' pass wirked incorrectly for cases like
    DependAnyOf [ SATISFIED, something ]

before patch it resulted in
    DependAnyOf [ something ] -> something

after the patch it gives
    SATISFIED

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Portage/Dependency/Normalize.hs: make 'normalize_depend' recursive

Sping until stable result is achieved.
It was always designed to work like that.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
hackport.cabal: remove broken 'tests/MergeDeps.hs' test in favour of 'test-normalize-deps'

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
cleanup: remove unbuildable 'tests/Portage/Use.hs'

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
tests/resolveCat.hs: cleanup: added top-level signatures

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Portage/Dependency/Normalize.hs: implement 'lift_context' normalization

Most advanced optimization to date.
It float outs common subdependencies in outer context:

    || ( ( foo bar )
         ( foo baz ) )

gets translated to

    foo
    || ( bar
         baz )

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Portage/EBuild.hs: cleanup: got rid og name shadowing

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>