Use Optional type parameter if present to create JSON schema

If Optional property have a type parameter, use it to generate JSON schema for this property. For example:

```java
public class Foo {
    public Optional<Boolean> bar;
}
```
will generate

```json
{
  "type" : "object",
  "properties" : {
    "bar" : {
      "type" : "boolean"
    }
  }
}
```
instead of

```json
{
  "type" : "object",
  "properties" : {
    "bar" : {
      "type" : "any"
    }
  }
}
```