Make sure map access via key are the same type as the declared type

Accessing a Map with an incorrect key type may result in a extra conversion or a runtime error. This is a bug, but not always caught by the compiler.

Bad code example

Map<String, Integer> fooMap = new Map<>()

Integer keyReference = 1;
Integer Value = fooMap.get(keyReference);

And we really should have keyReference as a String.

hello @tjoneslow,

I believe we have this rule already available, see https://rules.sonarsource.com/java/RSPEC-2175