Refactoring using functions
Cleaning up the code a bit

Yes, it now keeps some values that are not used. But at least it's
easier to read
Much nicer breaking out of the loop in Searcher::search()
Let's set this variable, even though we never use it
Better printing of statistics data to screen
Renaming function to be in line with others' names
OOps, this was using the local memUsed() vs. the program's mem use

This mix-up is because of an old commit where memory usage functions
were re-named
Better printing of data to console
Refactoring functions out of Solver::solve()

Makes it easier to read the code
Refactoring functions out of Solver

Makes things a lot easier to read
Didn't check for end-of-time when finding gates

The main loop didn't check for end-of-time

Thanks to Martin Maurer for this. Fixes #114