Fix: Store rule severity in messages, rather than pulling from the config on-demand

Fixes #984.

This stores the rule severity on the message objects created when a rule generates a report. This ensures that the severity is always what the rule gets at that instant, regardless of anything that's affected the config up to that point. It also removes all dependency on the config from the formatters, they now depend only on the messages.
This is literally all of the test changes. Removing the config mocks and adding severity to the messages wherever the configs were being mocked and used.