Add testing and Name attributes to analyzers

This PR adds Mockito to the testing suite so we can now do mocking. This PR also fixes a critical issue with analyzers being identified by their category. This was inconvenient and error prone because categories are usually human friendly strings. So instead I've added the `name` attribute to analyzers now and this is how they are identified by the parser their included in.