Fixed json_extractor to include null values in extractor input

We used to intentionally eliminate fields in a row where value
is null in JSON extractor input. Now we want to include these
fields with null values.

For example, for a table a(x, y), if a row is (1, NULL), the
json_extractor input for this row used to be {"x": 1}. Now our input is
{"x": 1, "y": null}.

**Include another bug fix: in default pipeline, when no factors are active, do not run the sampler.**

Previously when we specify no factors in the pipeline, the sampler won't run. But when we specify no pipeline, the sampler will run even there are no factors. Now we fix it.

@zifeishan This change does not seem related. What is it?