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
Fix spec for chef_wm_base:delete_object for dialyzer