Refactored the message system to get rid of payloads

See programmers.stackexchange.com/questions/233671

Essentially, having a seperate payload and message class caused
a bunch of work that would increase and become
more fragile as more payloads were added.