Extract formatter handling logic to FormatterSet
Pass immuatable objects to formatters

This is to avoid mutation of them by any of formatters
when multiple formatters are enabled.
Pass sorted offences to formatters
Use %s format sequence to avoid evaluation of % in a string
Merge pull request #305 from yujinakayama/refactor-formatter-handling

Refactor formatter handling