Customisable bashing sound

Code only.
Update wyrm-saver to current codebase.  Still can't dig out of the rock.
New tag in progress.
Sounds tweak 1
Sounds tweak 2
Tunes up mine pedestal finale

This adds some sark wyrms and noise to the initial sinkage, as well as making the eye emit Disturbing Screams so they can find you more easily.

More to the point, the wyrms can now dig just fine thanks to a new critter tag, MF_BORES, which gives 15x the bash ability a critter which BORES would typically have.  If a wyrm somehow got to the surface, it wou wreck any fortifications you had, because it's pretty good at tunneling throug solid rock.

(Until the sun came up, at which point it'd be Screwed.)

Fixes #10058.
Allow eating from worn containers / items.

Changes are:
1. get selected item via player::i_at, using only the item position, which includes worn items.
2. check the content of that item or the item itself for being food instead of duplicating that for weapon and inventory item.
3. get the it_comest pointer from the selected item as final step.
4. display message for empty worn container.
5. drop empty containers from main inventory (not worn, not wielded) if the option says so.
Removes non-needed translation, thanks BevapDin.
Fix Icecoon's handloads

We missed 'em in the aim conversion.  Thanks to Griffinhart for reporting; closes #10427.
Add recipes for electric tools.

Add recipes for electric jackhammer and electric chainsaw.
Merge pull request #10440 from KA101/ammo

Fix Icecoon's handloads
Merge pull request #10424 from KA101/wyrm2

Tunes up mine pedestal finale
Fixes optical cloak's description.

Since you no longer need to activate the UPS itself.
Merge pull request #10441 from Darkyhard/electric_tools

Add recipes for electric tools.
Implemented the item slot for books:

Convert functions in player to use const itype references instead of non-const pointers.
Apply astyle to Item_factory::set_use_methods_from_json
Load use functions directly into a vector,

instead of loading it into an itype pointer (in the use_methods array of the itype that the pointer points to).
This allows the function to be used without an itype pointer, just with a vector of iuse_functions.

Also move the check for the existence of the requested member into the function itself to avoid writing the member name twice.

And use the json objects for error reporting instead of debugmsg.

And fix a possible bug: use the member parameter instead of the fixed string "use_action".
Give books their own use functions vector.

This allows items that are tools and books to have different use functions, one (directly inside the itype) for the tool part and one in the islot_book for the effects that happen after reading the book.
Because reading only triggers the effects in the book specific use function, the martial arts style book need to set up book data to specifically write those iuse functions.
Make the macguffin item a proper book item.

Use the books use_function to call the macguffin function.
Move the unread chapters number into an entry in item::item_vars.

Add some chapter functions to the item class. The number of unread chapters is stored with the id of the player character, so different player characters on the same world can read the same book independently.