Add support for directory environments

Puppet 3.6.0 introduces directory environments as a replacement for
dynamic environments.

A warning is set when using dynamic environments.

This commits allows you to choose the new behaviour.

http://docs.puppetlabs.com/puppet/latest/reference/environments.html
fixes #4700 - deploy directory environments on Puppet 3.6 or higher

- $server_dynamic_environments is deprecated when server_directory_environments
  is enabled, set $server_environments = [] instead for a similar effect
- environment.conf deployed if custom manifest, config_version etc supplied to
  puppet::server::env instead of puppet.conf fragment
- basemodulepath set in puppet.conf to the value of server_common_modules_path,
  which had /etc/puppet/modules added to match the new Puppet default
- $environment_timeout added to puppet::server::env