[Linter] Split Linter result attribute name from message

Splitting the attribute name from the message allows for more
extendibility and in general better practice for linter errors.
Currently, the attribute names are just added to the front of messages.
This change will enforce specifying an attribute name.

Part of #48