Fixed issue with overloaded methods

This is a fix for the overloaded methods issue where two methods with the same method name in a class cannot have different metrics annotations. Only the method name was used as the cache key to find the metric instance and this PR changes it to use the entire method signature.

Related to #12