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 
good question, I'm not sure. My guess is Rhys wanted to make sure this is started from a clear empty scope, `zone` is only passed here to get the country and states from it, the scope is not called on it specifically so it can make a big difference depending on the context. Still think it makes sense to be a class method.

cc @RhysStansfield