Moved paste implementation out of the base DiagramState and into SelectState. This prevents add elements from being able to paste. Also removed next_state protected variable and replaced it being set with return statements. Changed default returns to return this instead of next_state. Point of next_state was to be able to correctly handle situations like mousePressed, mouseClicked, mouseReleased happening simultaneously in a multi-threaded system. But this application is set up as a single thread and it matches the book better without next_state.