Rework chat functionality

Last update time is stored as session data removing one condition for
duplicate messages and one condition for exploitation. Also added a
chatsend.cpp bug and still have one dupe condition remaining.