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();
          String name  = (String)args[0];
          int count  = (int)args[1];
         //do something
      }})
  .when(mock).someMethod();
```
will be better:
```java
  doAnswer(new Answer() {
      public Object answer(InvocationOnMock invocation) {
          String name  = invocation.getFirstArgument(String.class);
          int count  = invocation.getArgumentAt(1, int.class);
         //do something
      }})
  .when(mock).someMethod();
```