Gateways should show if there's a total

In a case where an item has a fee but ends up being zero (e.g. discount) the user should be able to purchase.

Note: Untested and I'm assuming gateway some logic/integrations could fail.
Pass the discounts array to the filter.

Allow for filters to know as much as the function.