* Ports /vg/'s component system
* Fix component signalling itself for addition
* Fix the list arrangement for removal
* Whoops
* Return the existing component if the created one was deleted
* These can't be ints
* ,
* returning TRUE from a callback will mark the event as handled
* Small refactor
* Add powered components
* R e f a c t o r
* More wip
* Fixes et al
* Pure pain
* When bae tells you she was tabs but she was actually spaces
* RReee
* Needs arglist
* Fax
* Fax
* More better
* You fail me yet again git commit
* Some kajiggering, but there we go
* No more 3rd param = variadic
* fix
* Sanity
* Whoops
* Minor thing
* Whoops
* fax
* Better describe the function, + add ..()s
* Fix
* Port to Initialize
* fuk in git
* Ports duplicated slipping code to a component
* Makes metal not slippery
* asdf
* Instead of cherry picking like an idiot I could just copy paster
* OOP
* And blood, don't forget Fry's blood!
* Further fixes
* A more generic fashion
* Use the new system
* Fixes
* Fix cartridge type
* Remove inertia
Added /proc/type2parent which takes a type (string, or type) and returns it's parent type (initial(x.parent_type) doesn't work)
Instead of being a raw list of components, /datum/var/datum_components is now associated list keyed by type with some bells and whistles to make GetComponent() calls faster