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 
Does it make sense to have a ZoneMember where zoneable_type is nil? I would say no.

Therefore, I would tackle this problem by properly validating that zoneable_id and zoneable_type are NOT NULL at the database level, and provide Rails validations that those are present.

Then this check can go away.