add counter cache from variants to stock items

This adds a counter cache for stock items.

While running bullet and deleting some option types, it recommended me to setup a counter cache for stock items. I decided to do so. This was the result of that effort.
Refactored. Discovered that all you had to do was add the `:default` option to avoid the `PG::NotNullViolation: ERROR:  column "stock_items_count" contains null values` error.