Add DuplicateRoot linter

Fixes gh-109

Currently doesn't parse down to evaluate the full selector for duplication, but only compares the selector roots as written.