Reworked labcoat buttoning

Changes labcoat code so buttoning and unbuttoning isn't done with a giant switch. Icon states for open and closed labcoats are now defined in the object itself as variables.

It functions exactly the same on the player end of things, but it is hopefully a little less silly on the code end of things and a lot more flexible for any sort of on-the-fly (read: admin-ish) things going on.
Yeah, all the stuff before var/icon_open is unnecessary and makes it all look confusing.