Extending the ApiModelProperty and ApiModelRequest annotations to support creating multiple swagger models based on the same java type.

Here is the problem this pull request is attempting to solve.  If I have a /products resource I want to be able to use the same java type in my code for both a new product being passed to a POST and an existing product being passed back from a GET. However the representations for the new and existing products are slightly different; a new product won't have an id field whereas an existing one does.  With the current swagger plugin the exact same product model will be used for both, which is incorrect.  These changes allow you to pass in a modelName to the ApiModelRequest annotation to create a new model with a different name, and then the excludeFromModels property on the ApiModelProperty annotation allows you to list specific models that the property should be excluded from.  Here is what it would look like for the product example:

ProductController.java:
```
@ApiOperation(value = "Creates a new Product")
@ApiModelRequest(model = Product.class, modeName="NewProduct", required=true)
    public Product createProduct(Request request, Response response)  {
        //Do Stuff
    }
```
Product.java:
```
public class Product {
    @ApiModelProperty(value = "Product ID", required=true, allowableValues = "A numeric that is auto generated.", excludeFromModels = {"NewProduct"})
    private Long productId;

    @ApiModelProperty(value = "Product Name", required=true)
    private String name;
}
```