Message pointers: A Tiny Performance Improvement!

I've changed the way the system passes messages internally so that it makes much fewer copies of the message (passing by smart pointer vs pass by value). This, combined with changing from XML to INFO saves approximately 2-3 ms per message.