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 
The `zone.kind == 'country'` is a bit gross. Wouldn't it be better to write: zone.country?

You'd have to define:
```Ruby
def country?
  kind == 'country'
end
```

But then we've isolated that gross logic within this class.