Rewrite do_chef_client() in crowbar_join

The old code was broken: if the first call to chef-client failed, then
we were putting the node in "recovering" state and calling a chef-client
again. This would normally pass as nearly nothing happens in this state;
we would then happily pretend that the node is "ready".

In a different case of brokenness, when we go to "installed" state and
run chef-client, if it succeeds, we then go straight to the final state
(ready) and run chef-client, skipping the "readying" state.

Now, we always try to have a successful chef-client in "readying" state
(either on first try, or after having moved to "recovering" /
"installed").

Note that the "ready" state is set on success later on anyway.
Merge pull request #298 from vuntz/crowbar_join-chef-calls

Rewrite do_chef_client() in crowbar_join
Merge branch 'release/roxy/master' into roxy-sync-again
Merge pull request #301 from vuntz/roxy-sync-again

Merge roxy branch into stoney
Replaced constant by env variable
Added documentation and modified readme
Removed unsed build files
Moved i18n file
Added gitignore file
Updated copyright header
Rewritten hashes to 1.9 syntax and removed unused form javascript
Added magic utf8 token to ruby files
Restructured controller initializer
Added documentation base file and fixed documentation format
Appended json file extension to all api calls
Fixed permissions