Major Pipe Upgrade Hashtag 2

Round 2 on this.

I have rewritten all code ontop of the latest changes of pipecode.
That also means that I have yet to fix the issue gia spoke about, where icons should be created on worldspawn and then stored in arrays.

Everything is in working condition.

Old PR for reference: https://github.com/tgstation/-tg-station/pull/3611
what's the expected dir of this pipe?