Normalized execute results to ArrayCollection

- Original logic used array operations that didn't work
  on ArrayCollections, so refactored to use ArrayCollections all the
  time, although I am unsure as to why Doctrine ORM does not do this.
- Also getSingleResult reuses getOneOrNull logic