Add field to component in recipe to indicate availability in inventory

can_make uses it to make sure there are enough of each component to be
used as both tool and component if needed.

Default for the field is -1, which indicates
the component is not present in the inventory. 1 indicates it is and
there are enough to be used as both tool and component if need. Setting
to 0 indicates there are not.

If the recipe can still be crafted with alternative components, they
are colored green as the additional information isn't needed.
Rename color field to available.
Force colors to be calculated for all components.
Added the same checking to tools.
When consuming components/tools, only pick from those that are available.
Check crafting_inv for items, handle tools with charges

Previously was only searching playing inventory, which wouldn't include
any items found around the player.
Merge PR #922 - fix recipes with shared tool/component lists