Reimplement collision checking
Fixes #155 (closed)
I'd got with this little bit overboard. Should I go back and do it just as small fix and merge this after release?
We required to add possibility to have directories in .list files. This is not supported more than just we won't crash when something like this happens.
During this change whole code was almost implemented again. Basic of original code was that we were adding nodes to tree and checking if they already existed and if so if it isn't collision. New code at first builds whole tree and for every node remembers what packages it is required for. After that it is searched for collisions. This solved mirror problem when multiple collisions were reported for same file when more than two packages collided.