Separates the client key creation to a LWRP

Makes it easier for other cookbooks, such as Openstack, to create their keys
Notifies when the keyring is changed

Also handles updating when the capabilities change
Adds some type_of restrictions
Fix provider with best practices
* use load_current_resource
* use Mixlib:ShellOut
* ...
Fixes some issues found by testing
Adds whyrun support
Clarifies the whyrun output
Fixes the duplicate run of the create-or-get command
Allows Client LWRP to run on nodes that aren't mons
Adds the ability to store a client secret instead of a keyfile
Adds automatic mounting of CephFS
Initialise testing tools

- add needed infrastructure (Gemfile, Berksfile)
- disabled two non-critical rubocop tests

To make use of these, run:

    bundle install
    bundle exec strainer test
Integrate tests into travis.yml
foodcritic needs ruby >= 1.9.3
add some basic kitchen suites

TODO include chef-solo-search to have meaningful recipe tests in the
absence of search().
fix travis-ci

stolen from
https://github.com/opscode-cookbooks/wordpress/blob/master/.travis.yml
add test-kitchen + kitchen-vagrant to Gemfile

and make travis ignore these.
switch test-kitchen provisioner to chef-zero

This allows for using roles (when they're present in compiled form, i.e.
JSON -- I added these).  In theory it should help with all search()
calls, but I haven't tested that yet.
Merge remote-tracking branch 'hufman/feature-mount-cephfs' into 90