Add casted generic methods for getting arguments from InvocationOnMock

The problem is when i need to use answers, I quite often need to cast these arguments.
I propose two methods in InvocationOnMock, so we can get two arguments of method typesafely, so this piece of code,
```java
@SuppressWarnings("unchecked")
  doAnswer(new Answer() {
      public Object answer(InvocationOnMock invocation) {
          Object[] args = invocation.getArguments();
          int count  = (int)args[1];
         //do something
      }})
  .when(mock).someMethod();
```
will be better:
```java
  doAnswer(new Answer() {
      public Object answer(InvocationOnMock invocation) {
           int count  = invocation.getArgumentAt(1, int.class);
         //do something
      }})
  .when(mock).someMethod();
```