Fix infinite loop in store_maint()

The restock_attempts counter wasn't used for the attempt to clear
a store's stock, which had a bug. The bug is:

If you have a store which has N staples, and N+1 or more slots all
of which happen to contain staples, and it has turnover, it will
loop forever trying to find an item it can delete.

The first fix I thought of was the rather expensive one of coming up
with a way to track which kinds had been seen at least once, and allowing
deletion of extras. Lots of work, easy to get wrong.

New solution: Reorder operations. If there is turnover, start by
deleting items *without regard to staples*. We no longer set the
minimum stock to include always_items, and allow the deletion of
staples along with other goods. Then, whether or not there is
turnover, we create any missing staples.  Then, if there's turnover,
new items are added randomly. The reason the staples are in the
middle there is mostly to make it so they show up above the new
items, since they're standard stock.

I also added a restock_count check to the destock, with a slightly
different diagnostic message, but I don't imagine it'll ever come up
now, as store_delete_random() can't fail now.

Also, changed store_is_staple() to take a kind rather than a store
slot, although the reasons for which I did this seem now inapplicable,
but it seems like it'd be easier to use.

Changed general store to use the same logic as the other stores for
buying, which is:

1. Use a switch() on type, rather than a series of ||.
2. Drop the (now totally wrong) comment about accepting spikes, since
there are no spikes.
3. Accept diggers, because it sells diggers. It's confusing expecting
the weapon store guy to buy shovels. It's reasonable that he might buy
a magic shovel, but it's silly for him to be the only person who will
buy them at all.