Exofab revamp finishing and fixes

#### Contents:

* designs are now using the _construction_time_ var and the hacky _/obj/item/mechavars_ is gone
* designs updated : there shouldn't be "free" designs anymore, names added, etc
* cleaned the objects of their _construction_cost_ and _construction_time_ vars
* fixes the material name being displayed with $ character before
   * this also fixes the overlay animation in inserting sheets
* the category var is now a list, so parts can be build/used with several chassis (fixes the Firefighter Chassis appearing when building Ripley)
* properly fix the href vulnerability when emptying the exofab (you can now remove all sheets of a given material at once)
* the exofab now won't create a material sheet when emptying and there's not enough material (e.g 1000 metal)
* the exofab now won't accept a sheet if it would overstuff it (losing some material in the process)
* cleaned the code a bit (simplified, streamlined, using global vars, etc)
* upgrading the exofab is still working
* _Materials_ and _programming_ techs now reduces building cost and building time respectively.

Finish #5722 and fixes #5954.
Also fixes #6281, at least when the exofab rounding of the ejected material was the culprit (thanks Tkdrg).