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 
This should be something like: `zone.state?`. Assuming that countries and states are the only types of zones is unsafe for future.

I would probably have an else that just returns this zone.