oj/core.clj: Trim extra spaces in sqlify

When SQLifying an expression, if any of the generators returned nil, skip that entirely, instead of adding a space.

The main purpose of this change is to make generator chaining produce more reliable output. For example, if we'd like to introduce `GROUP BY`, and place it before `ORDER BY`, if there's no grouping, without this change, we'd have an extra space before the `ORDER BY`, which would break tests.

This patch simply makes it so that such spaces are removed.
While we're here, let's change this to `apply` instead of `reduce`. Same result, more efficient.