Formata code. #mania
Reorder allowed clause for the Praspel visitor.
Fix a typo in the API documentation.
Add the addVariable() method.
Add the addClause() method.
Add trace support!

Just give a Hoa\Praspel\Trace object in the Hoa\Praspel::evaluate()
method, and use the Hoa\Praspel\Visitor\Praspel to print it!
Format code. #mania
Detect a new Failure\Precondition.

If there is not enough data to invoke the callable, the error was
postpone to the checkClause() of a @requires. But in the following
situation, this will not be detected:

    /**
     * @requires i: 'foo';
     * @behavior a {
     *     @requires j: 'bar';
     * }
     * @behavior b {
     *     @requires j: 'baz';
     * }
     */
    public function f ( $i, $j ) { … }

If $i = 'foo' and $j unset. Because the first @behavior will failed
(silently, which is normal), and the second @behavior will also failed
(and also silently, which is still normal). So the callable will be
invoked with a missing argument.

This patch fixes that!
Re-index exceptions.