title: Exclude null values from Django's ArrayAgg
body: <p>I'm using Django's postgres-specific <code>ArrayAgg</code> aggregator. It works fine but when the list is empty I get <code>[None]</code> instead of <code>[]</code>. Is there any way to filter these null values out? I've tried to pass a filter argument to <code>ArrayAgg</code> but it didn't work. Here's a simplified example of my setup:</p>
  
  <pre><code>class Image(models.Model):
      # ...
  
  class Reporter(models.Model):
      # ...
  
  class Article(models.Model):
      reporter = models.ForeignKey(Reporter, related_name='articles')
      featured_image = models.ForeignKey(Image, related_name='articles')
      # ...
  </code></pre>
  
  <p>Then if I make this query:</p>
  
  <pre><code>reporter = Reporter.objects.annotate(
      article_images=ArrayAgg('articles__featured_image'),
      distinct=True
  ).first()
  </code></pre>
  
  <p>And the first reporter in the result set doesn't have any associated article, I get:</p>
  
  <pre><code>&gt; reporter.article_images
  [None]
  </code></pre>
  
  <p>I've tried to add a filter, but no luck:</p>
  
  <pre><code>Reporter.objects.annotate(
      article_images=ArrayAgg(
          'articles__featured_image',
          filter=Q(articles__featured_image__isnull=False)
      )
  )
  </code></pre>