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
We generally stick to the philosophy that if signals come into a block together then they should leave together. This will spit them out one at a time. Is there a reason why you wanted it to do this?