Extract usage lints from DeclaredNameLinter

The `DeclaredNameLinter` previously linted for both declarations of
functions, mixins, variables, etc. as well as uses. This isn't entirely
in keeping with its name, so we extract that relevant functionality into
a separate linter for greater clarity.

In order to keep code DRY, a `Util` module was created to house common
code between the `DeclaredNameLinter` and the `UsageNameLinter`.

Change-Id: Ibcfac47224d56efd8630b3d54c194ec9c1629314
Reviewed-on: https://gerrit.causes.com/24445
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Shane da Silva <shane@causes.com>