Macro replacement improvement

Replace macros when loading them into Player message queue. SpeechAction
was the wrong place to replace these macros, since messages may come
from different places
This allows a scripted Trainer's name to be a macro, ie "{rival}" with
proper replacement