use_if_avail for player

has_charges/use_charges combined in one step to use_charges_if_avail.

In doing this I discovered that matches only sort of work like lighters (you can't light cigs with them for instance), but fixing that is a bigger task than this one commit.