Add sanity checks to item being added to cart

#2022 - Makes sure that the item being added to the cart meets some basic requirements:
is an array
contains a download id
the download id isn't a form of empty

Also cleans up the Filter, process so it's only called once.