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.
Not to dismiss your hard work but I commonly find in projects like this that rapidly develop, javadoc style comments never really help and are outdated very quickly.

Example:

``` C++
/*
+		insert - Converts a number of sheets to a raw amount and adds it to the container. Don't use this directly.
+				 Returns amount of sheets inserted if successful, returns 0 if not successful (container full).
+			Args:	'A' is an amount of sheets.*/
```

insert_sheet already tells me what it does, no need to have a comment explaining it. The returns "x" is not that useless but I can look down a few code lines and see it. The "A" argument I would need an explanation because that tells me nothing, which is a bad sign it is a bad variable name and needs to be re-named to something logical like "amount".

So what I would do:

* Leave in the comments explaining why.
* Leave out the javadoc.
* Rename all your variables to names which make sense.
* Look through all the methods and rename them to something other than "useB", that isn't telling us what it does, name it to something logical.

The TODO comments also can be removed, you can create a github issue instead.