WIP: Materials refactor

Eliminated the materials enum and uses material data loaded from materials.json instead.

Most of the code changes are in the made_of calls.

In some cases such as physical item damage, this is now determined by comparing against the item's bash_resist.

There's still a number of places (eg fields.cpp) where the materials resistance properties should be used instead of multiple made_of checks - will need to take a look at those too.