Normalize driver, provisioner, & busser blocks when merging raw YAML.

Without accounting for the shorthand form of these blocks (or when the
value is `nil`), the Kitchen::Loader::YAML object will attempt to merge
a Hash into nil, String into Hash, nil into String, etc. Before merging
.kitchen.yaml with .kitchen.local.yml (and global
~/.kitchen/config.yml), the shorthand form of:

    ---
    driver: vagrant
    provisioner: chef_solo
    busser: 0.5.0

need to be expanded to the explicit form of:

    ---
    driver:
      name: vagrant
    provisioner:
      name: chef_solo
    busser:
      version: 0.5.0

Extra care was taken to preserve the raw data format for each file so
that `Kitchen::Loader::YAML#diagnose` will not pre-normalize the data
before emitting it for debugging.

Thanks to @spheromak for reporting and working up a failure scenario.