make web_socket.js pub and sub to channels dynamically

We need to have specific channels for each classrom. The channels were originally hardcoded.
generate public channels dynamically

Now each chat has a unique public channel.
Add .main-body container for styling
PubSub teacher and students to proper channels
change student publish

Student publish messages with a token so that they can see their own responses in addition to the teacher's question but can't see other students' responses.
change User to Student becuase Users dont have classrooms