Allow linters to define custom descriptions

Previously `Linter`s could only have exactly one description which was
defined by implementing the `description` method on the `Linter`.

There are some cases where an individual linter can provide additional
context as part of its description for the lint. Allow for this case by
adding an optional `description` argument to `Linter#add_lint`.

Change-Id: I88058f05a8c626a14d6cc3e7879f5a99ddc510ae
Reviewed-on: https://gerrit.causes.com/28829
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Greg Hurrell <greg@causes.com>