allowing controllers to receive optional parameters

Currently we can't create a controller method that receives an optional parameter, when using deserialization.

```
@Post("/doSomething")
@Consumes("application/json")
public void doSomething(Car car) {
}
```

If we call `/doSomething` with empty body, this will throw a `NullPointerException` because it does not have `Content-Type` header.
```
POST /doSomething (works great!)
{
  car: {
    ....
  }
}
```
```
POST /doSomething (throws a NullPointerException)
<<no body>>
```