verify_password can use salt encoded w/ bcrypt password

Under opscode-account, users both newly created and with updated bcrypt
passwords have an empty string stored for salt, because the
bcrypt modular format for the hashed password also includes the
salt.

With this change, when the salt is empty, we will use the encoded
modular bcrypt format in its place - the bcrypt library will use
only the salt portion of the hashed password.
given that chef_wm is not going to be back-compatible, remove switchable hash types
add a test for when no salt is provided
Merge pull request #112 from opscode/mp/use-derived-salt-when-empty

verify_password can use salt encoded w/ bcrypt password
chef_wm_password supports both EC and OSC password data schemas

* Add support for EC/OSC sha1+bcrypt types
* support forlegacy sha1+salt types
* upgrade function
* tests for the above
* added a password test data generator rb file
Merge pull request #113 from opscode/mp/support-multiple-password-schemas

chef_wm_password supports both EC and OSC password data schemas
Move chef_wm_password to chef_objects/src/chef_password

* remove chef_wm_password and tests from this repo
* also remove chef_wm_authenticate_user, _users, _named_users and routing to them -
  it makes no sense to update these to use the updated password module,
  since these have been superceded by oc_chef_wm versions of the same.
Merge pull request #114 from opscode/mp/move-password-to-chef-objects

Move chef_wm_password to chef_objects/src/chef_password
Use chef_keygen_cache for obtaining key pairs for users and clients

* Wire keygen cache into supervision tree

* Replace chef_wm_util:generate_keypair/2 with
  chef_wm_util:maybe_generate_key_pair/1 which is now used in
  chef_wm_named_client and chef_wm_named_user.

* Catch keygen_timeout in clients and users endpoints. Return 503 for
  this case with log message set to 'keygen_timeout'

* Remove dependency on chef_certgen