User provider does not update user when uid/gid are strings

Fixes [CHEF-4200]. If the user provider was sent UID as a string,
comparing to the already-created user would always think that the
user had changed.
Use string comparison of user :uid/:gid

String comparison is slightly safer than integer comparison
in cases where :uid/:gid are nil or empty.
[CHEF-4200] Replace Array#keep_if with #select

Array#keep_if was introduced in Ruby 1.9; Array#select
is backwards compatible with 1.8
default case should be same as log_level :auto

- this was failing when not run on a tty
- expands test to ensure default case looks just like :auto case
Merge pull request #1006 from opscode/lcg/tty-unix-test-fix

default case should be same as log_level :auto
use :each, because config is now reset after each

- new code inserted resets in between the before(:all) + after(:all)
Constrain mixlib-config to 2.x
Constrain all dependencies to major version
Merge pull request #1007 from opscode/lcg/regkey-spec-fix.rb

use :each, because config is now reset after each
[CHEF-4507] Smartos package provider to match resource package_name
file cache location changes on windows
Merge pull request #1011 from opscode/lcg/runlock-spec-fix

file cache location changes on windows