/button/ implementation

Adds type /obj/machinery/button and moves door controls, ignition switches, driver buttons, and similar to it
Defined var/id as /obj/machinery because it was used in a fair number of machines and was needed for this implementation
Now when buttons are pressed they no longer iterate through world looking for their objects, instead they use an internal list and pre_process()
pre_process() was a proc added to /obj/machinery and is called by the MC, it works similar to initialize() in that it only runs a single time after New(), but it works for objects created at runtime (Getting dangerously close to feature-territory here though)
Also, used pre_process() to fix the RD consoles not actually linking to devices at round-start
Updated the map with the new paths on buttons