Issue title: gRPC client serialization bug breaks Decision task definition
 Issue body: #Problem
Protobuf in gRPC client serialization changes null values to an empty string. The server code doesn't handle such cases correctly sometimes.

#Details
If we compose a worflow definition with Decision task in java gRPC client, for example by doing
```
ObjectMapper objectMapper = new JsonMapperProvider().get();
InputStream inputStream = ClassLoader.getSystemResourceAsStream(fileName);
WorkflowDef.class  def = objectMapper.readValue(inputStream, WorkflowDef.class);
metadataClient.registerWorkflowDef(def);
```
from a stream with
```
{
  "name" : "DecisionWorkflow",
  "description" : "DecisionWorkflow",
  "version" : 1,
  "tasks" : [ {
    "name" : "decisionTask",
    "taskReferenceName" : "decisionTask",
    "inputParameters" : {
      "case" : "${workflow.input.case}"
    },
    "type" : "DECISION",
    "caseValueParam" : "case",
    "decisionCases" : {
      "c" : [...]
    },
    "defaultCase" : [...],
  }],
  "schemaVersion" : 2,
  "restartable" : true,
}
```

The WorkflowDef after serializing into Protobuf producing an entity
WorkflowTaskPb$QorkflowTask that has an empty string in a field "caseExpression" which is absent (null) in the original java POJO. After deserialization on the server-side, it's still an empty string instead of null. It gets processed incorrectly in https://github.com/Netflix/conductor/blob/master/core/src/main/java/com/netflix/conductor/core/execution/mapper/DecisionTaskMapper.java#L125 which has only a null check and if ```caseExpression``` is not null we ignore ```caseValueParam``` completely. While the original entity has a defined ```caseValueParam``` and undefined ```caseExpression```.

# Proposed fix
https://github.com/Netflix/conductor/blob/master/core/src/main/java/com/netflix/conductor/core/execution/mapper/DecisionTaskMapper.java#L125
Replace
``` 
if (expression != null)
```
with
```
if (expression != null && expression.length() > 0)
```
 Comments: 
 Comment 0: @Spikhalskiy Thanks for reporting the issue and the proposed fix. This was applied [here](https://github.com/Netflix/conductor/pull/1712/files#diff-548d01ba857168cef7fbf01b7379587eR126) and released as part of v2.27.2
{'source': 'GithubIssues', 'repo_name_with_owner': 'Netflix/conductor', 'issue_id': 626941392, 'repo_stars': 4949.0}