JSON Qualities & Smart Crafting Radius

Fully implements the JSON qualities stub that already existed, and
expands it to include terrain and furniture as well as items. Also
implements smart crafting radius, in where furniture and terrain with
the quality `CRAFT_DISTANCE`, will allow crafting with items on that
tile up to the given distance away.
Add crafting distances to furniture.json

Defines the crafting distance for all furniture that should have it.