Improve tax rate reads on checkout

Worked with @RhysStansfield on this one. They were seeing very slow requests, about 20s, on checkout due to the store having hundred tax rates. This patch persists the `zone.kind` on the db and adds up a scope on tax_rate.match so we instantiate less ar objects.

// @JDutil 
If you make the change to the Spree::Country association, this can become something like:

```Ruby
        self.joins(countries: :zones).
          where('zone_members_spree_countries_join.zone_id = ? OR ' +
                'spree_zones.default_tax = ?', zone.id, true).
          uniq

```

Which is easier to read, and I think does what you're looking for with less queries. It passes your current set of tests.