Defaults should not override non object, array or string values.

The method _.isEmpty() will return true for numeric values as well as for dates and booleans.

The following patch (test case included) fixes that by using some extra logic for determining wether a value is empty or not.