core: Catch plugin load errors and show them to the user ina  friendly way
This was introduced in 1.4.1 with d26c147.

This PR sets the active hostname back to the name specified in the Vagrantfile (fqdn) and updates the unit tests.

Setting it to the short name causes loads of problems while configuring the system. I've had issues with sudoers hostname matching, Weblogic certificate generation and a few others. Even if I changed all of the Chef recipes, the fqdn is set in /etc/sysconfig/network so the active hostname will switch to the fqdn after a reboot.
core: better logging for caps
guests/linux: properly quote and insert public key
provisioners/docker: Add missing I18n key [GH-2774]

Also sort the docker keys alphabetically.
core: refactor error initialization logic

/cc @tmatilai - This includes a test case for the symbol stuff, should
be okay now.
catch errors that happen before Vagrant is even loaded
core: log plugins and their versions

/cc tmatilai - Bundler makes it nice and easy.
Merge pull request #2792 from smoyer/redhat_hostname_patch

guests/redhat: use FQDN for hostname
Update CHANGELOG
core: BatchAction should handle forks [GH-2756]
core: test that forking is allowed in a BatchAction