Cleanup and documentation, machine replacements

Adds machine replacements that duplicate the existing autolathe, biogenerator, mech fab, and circuit printer.  I am a little proud.

Cleans up the code a bit.  Moves the enormous attackby mess into its own file and splits it into subprocs for readability.  Adds a couple helper procs to reduce code redundancy, and adds text constants to improve maintainability.

If an item is in the maker list at compile time but cannot be built, an entry will be put into the log with explanation text, eg,
## WARNING: The exosuit fabricator (/obj/machinery/maker/mech_fab) could not create /obj/item/borg/upgrade/tasercooler: null cost list