Updated readme.
Fixed (?): Truth of (x. P(x)) v (Ex. ~P(x)).

The reason why this is provable is our different treatment of standard
names. The old one was wrong anyway, because fol_inconsistency_reverse
test came out false, i.e., (x. P(x)) v (y. ~P(y)) came out true.

Important open questions:
 * Is our substitution mechanism sound?
 * Is it necessary and/or sufficient to re-use placeholder standard
   names from the setup for the query?
Replaced std::pair/tuple with Maybe where appropriate.

As a side effect, this saves 30% runtime.
There is a unary and binary Maybe now.

Maybe is a variadic template (without any content) with two
specializations for the unary and binary case.

In the SimpleClause and Clause unification we return the MGU and the
result of unification together. The first solution was to use
Maybe<std::pair<Unifier, [Simple]Clause>>. Now it's
Maybe<Unifier, [Simple]Clause>>.