Adding support for the Warnings plugin

This change adds the warnings plugin.  The implementation
pretty much just follows the UI from the top down.

While the parsers are a drop down list in the UI, it was decided
that allowing that field to be a string instead of a dictionary
was necessary since the user can configure their own custom
parsers at the system level and use them here.