Feature/facter 2/fact 322 remove special casing of empty string

This pull request removes the special casing of the empty string that was scattered across Facter. The main reason that this seems to have been added is that this:

```ruby
Facter.add(:foo) do
  setcode '/this/command/may/return/nothing'
end
```

Would behave correctly. This pull request removes the special casing from command execution and facts and restricts the special behavior to when Resolutions are evaluating a string. The existing behavior of `setcode 'foo'` will continue to work but the rest of the code base won't have to deal with `Facter::Core::Execution.exec` randomly returning `nil`.