Improve message handling and translation

- Use message name to determine handler method
  when MessageNameProvider is implemented
- Check if message name is also the class name of the message
  and use it instead of the default message classes