Resolved #589 where the method rules returned my methods were not e...

Have made following changes that resolves #589 
 - Added to the list of `MethodRule`s declared as fields, rules returned from rule provider methods which solves the issue
 - Added relevant test cases incorporating the change
 - Change in `TestClass#getAnnotatedMethodValues` method because previously while scanning for methods returning a rule of particular type method invocation was done and then the type was evaluated based on returned value. But this behavior created a side effect and failed a test when I incorporated behavior to resolve the issue. The case `TestRuleTest#testCallMethodOnlyOnceRule` failed because `TestClass#getAnnotatedMethodValues` was called twice to scan for `@TestRule` and `@MethodRule` annotations and that called method rule provider method twice. To solve that change is incorporated in `TestClass#getAnnotatedMethodValues`
Could you add a comment that explains why we don't do anything if the return type isn't what we expect? The comment could mention that methods annotated with `@Rule` can return a `TestRule` or a `MethodRule`, and we don't want the methods to be called twice.

I filed #1016 for a related issue