This is required because the Chef Server almost always needs a node name to interact. This will default to the hostname, but that's always going to be `vagrant.vm`, which will collide easily. This generates a random hostname with `vagrant-` as the prefix and stores the result in the machine's data directory.
Vagrant Core Plugins
These are plugins that ship with Vagrant. Vagrant core uses its own plugin system to power a lot of the core pieces that ship with Vagrant. Each plugin will have its own README which explains its specific role.