Override aggregateResult in CreoleASTBuilder to preserve non-null results

This fixes a problem being triggered by certain deep lists. The default
implementation is a bit odd - I'm not sure why you'd ever want to get a
null result if you'd already successfully matched a non-null one. This
seems a much more sensible default.