Pass entire int array to picosat_add_lits once per clause, in AddClauses()

This improves performance when passing a bunch of clauses, by reducing the number of times we need to call into C. Instead of once per literal, it is once per clause. 
The `picosat_add_lits` header doesn't say, but a look at the source reveals that _not_ having a `0` in the clause will cause a buffer overflow. From `picosat.c`, line 6857, version 960:
```C
int
picosat_add_lits (PS * ps, int * lits)
{
  const int * p;
  int lit;
  for (p = lits; (lit = *p); p++)
    (void) picosat_add (ps, lit);
  return picosat_add (ps, 0);
}
```

Perhaps it's worth adding a comment warning Future Me not to remove this `if`/`append` unless I want a buffer overflow.