[CHEF-4109] change user lock/unlock to account and password locking

Deprecates `:lock` and `:unlock` in favor of `:lock_user`, `:unlock_user`, `:lock_pass` and `:unlock_pass`. On Ubuntu, `:lock` and `:unlock` fall back to password locking. On other platforms, they fall back to account locking (as per previous behavior).

Adds support for SmartOS using the Chef::Provider::User::Illumos subclass.

Includes a refactoring of the user providers to follow more modern and preferred methods of shelling out from within Chef runs. `:check_lock` is renamed to `:locked?` in order to seem more ruby-ish and readable.