Added support for Generic Types resolving (#313)

This commit resolves generic types but breaks the following tests:

```
Failed tests: 
  ApiModelReaderSpec.Generates the correct models when alternateTypeProvider returns an ingoreable or base parameter type:199 Condition not satisfied:

models.size() == 0
|      |      |
|      1      false
[ResponseEntity:Model(ResponseEntity,ResponseEntity,org.springframework.http.ResponseEntity,Map(headers -> ModelProperty(HttpHeaders,org.springframework.http.HttpHeaders<java.lang.Object>,0,false,None,null,None), body -> ModelProperty(object,java.lang.Object,0,false,None,null,None), statusCode -> ModelProperty(string,org.springframework.http.HttpStatus,0,false,None,AllowableListValues(List(100, 101, 102, 103, 200, 201, 202, 203, 204, 205, 206, 207, 208, 226, 300, 301, 302, 302, 303, 304, 305, 307, 308, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 426, 428, 429, 431, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511),LIST),None)),Some(),Some(),None,List())]


Tests in error: 
  ApiModelReaderSpec.Generates the correct models when there is a Map object in the input parameter:164 » IndexOutOfBounds
  HandlerMethodResolverSpec.Methods with same name are distinguished based on variance of parameters and return types:14 MissingMethod
  HandlerMethodResolverSpec.Methods with same name are distinguished based on variance of parameters and return types:14 MissingMethod
```

I need some help to find out if it actually breaks something or the test must be adopted for the new feature.

Also added a precondition for issue #303, yet no fix for it but I think I can fix that issue as well afterwards.