Improvements to chef-client firstboot script
 - Chef for network connectivity before going ahead with the chef-client download.
   This is to resolve what I've found to be a common cause of the firstboot script failure.
 - Make the use of validation_client_name optional.
 - If a server role is set, use it.
 - Use the proper service start convention, instead of the init.d script directly.
 - Some remarks for posterity.