Change effects to be name based

-- Each effect has a unique name for the purposes of registration.
   This will allow us to let the client update parameters.
-- Setup concept of grid listeners to get a callback when the grid
   is updated. Use it to update the client over web socket.