Booleans should be correctly recognized in userdefaults

If you would set preferences as booleans like in the example below, the userdefaults provider would always set the setting again. `true` and `false` (being `TrueClass` and `FalseClass`) would not be recognized as a boolean and causing the check to fail.

```ruby
node.default['mac_os_x']['settings']['finder'] = {
  "ShowStatusBar" => true,
}
```

When adding them as a boolean the preferences are only set if they are different than the current value.

A workaround would be to define the booleans as strings: `"ShowStatusBar" => "true"`. But that seems a bit lame too.