Refactor flash messages to support more types

Flash messages are redone to look like actual alert boxes. Also, more types of flash messages are now supported.