refactored provisioning plugin

Move all OS distribution code and config from the provisioner plugins into a new distro plugin. This eliminates code duplication for non-native provisioners such as chef-solo and ansible.

cc/ @bmoyles, @bunjiboys, @pas256, @viglesias, @kvick, @coryb