Fixing issue where files with identical names are skipped during analysis.

This is due to the fact that file metas are stored by their name. To fix this added an `AnalyzerRenderer::identifier()` function which returns a relatively unique string. The `FileRenderer` then overrides this, and instead returns the full filepath. In this way, duplicates are no longer a problem.