BEPGreedy: do not pollute std::cout

Algo implementations should use the debug infrastructure in place of
std::cout and std::cerr.
Do not #include MaxCardinalityUnionSearcher.h in reductions.h

It is unnecessary
Update TODO
Revert partially b0aac550c8d76291562d49b59ca2640260596fac

Revert partially "main(): Better initialize the random value".
This snippet got into the index by mistake.
BEPFrequency: make the random partition truly random

Making guarantees about no empty baskets makes a random partition
not really random. It is able to change its properties.
BEPFrequency: Make SetCoverModAddManySubsetsToSolution tolerate empty subsets

In BEPFrequency2(), it is possible that some subsets will turn out empty
when added to the solution.
Make SetCoverModAddManySubsetsToSolution handle that gracefully.
Do not call SetCoverInstance::isCoherent

In the tracelog, this takes up 8,63% of all execution time of the program.
It is used only for debugging, any problems that it would discover would
probably come out as SIGSEGV or something similar later.
Call isCoherent in runAnAlgorithm

That way, it would be called sufficiently rarely that it won't take
too much time.
Makefile: Compile with gcc by default
Makefile: add some comments about profiling
generateRandomSetCover: pass the rng by reference, not by value

This will allow properly reusing the generator in other calls.
Added the NOTES file
Updated .gitignore

Added:
results/
tracing/
Makefile: nicely split the file between parameters and commands
Makefile: store temporary files in the directory /build
.gitignore: add the build directory, remove specs for indiv. build files
Makefile: make the GLOBAL_CHECK visible

Move: .GLOBAL_CHECK -> GLOBAL_CHECK (removing dot at the beginning).
MaxCardinalityUnionSearcher: add an important comment
Update TODO
Update TODO