do not generate incorrect IGNORE declaration in DEFRULE

We tried to potentially ignore START and END parameters even in case
the transform did not receive such parameters.

* Fixed this in DEFRULE.

* Added test case DEFRULE.IGNORE-DECLARATIONS.
fix return of PROCESS-PARSE-RESULT for parse failure, :start ≠ 0, :junk-allowed t

When a parse failure occurred for :junk-allowed t,
PROCESS-PARSE-RESULT always returned 0 as position up to which the
input had been consumed. In case PARSE had been called with :start ≠
0, this was incorrect.

* Added start parameter to PROCESS-PARSE-RESULT which is returned in
  case of parse failures and :junk-allowed t.

* Added a case in test SMOKE in tests.lisp to test this behavior.