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're going to set these associations (which I think are great!) you should also set the corresponding inverse associations on Spree::Country and Spree::State so we can do:

`country.zones` and `zone.countries`