Limited Gate/Trigger rewrite

Moved most of the Gate logic out of Pipe and into Gate. Expect some NPEs
on pipe.gate.

Converted the Trigger/Action API to key off of unique Strings instead of
IDs. Legacy conversion code implemented as well so it shouldn't affect
worlds.

Simplified Trigger/Action Icon functions. No more indexes.

More busy work is needed to convert the existing Triggers to the new
code.