A new datum for handling minerals in machines.

I made this in hopes of making easier the implementation of machines that use minerals and also to make code cleaner looking.

This datum should have all the procs necessary for handling minerals (it even has too many, I reckon).

If accepted (not necessarily merged), I'll start modifying the code of machines that use minerals to use this datum.

Banana shoes already modified as a (poor) example.

I think this might fall under the category of things not merged during a freeze, but I am not sure so here it goes.
change this If/else block to "max_amount = max(0, M)"