MergeState

Added a new block / file that allows you to merge signals

- Works on the same logic as other state blocks except with different functionality
- if *state* has not resolved (i.e. it has not received any signal) then it blocks all signals
 - prevents startup errors where you are getting signals where you expect *state* to exist, and it doesn't
- once *state* has resolved, it appends it onto every signal with the name "State Name"
- tests created and verified in the gui
- This includes the Relay block merge request