Provide multiple configurations for a box setup

This is the base integration for prodividing several configurations for a box setup. My goal is providing a Vagrant box for a Symfony sandbox project as simple as possible.

My idea:
* https://puphpet.com/editition/symfony
* everything is already configured and optimized for a Symfony project (e.g including php-apc and custom php.ini settings)
* click "Create My Symfony Manifest!"
* vagrant up
* happiness

Of course all other huge projects and frameworks could be integrated in this way.
As I didn't want to change too much stuff at once I only changed the code so that it could handle "editions". The Symfony configuration is not yet done.

### Configuration Access
For better accessing the huge configuration array I introduced the Symfony/PropertyAccess component. Accessing deep nested values in the configuration is quite simple then.

### Edition
An edition is a pre-configured configuration of a Vagrant box. An Edition could be defined in `config/editions.yml`. All configs could be defined in this way however access in the form elements has to be adepted accordingly. Currently only the timezone and php modules are supported this way.

### Functional Testing
Besides this big change I integrated the first real functional tests (FrontTest). Two more Symfony components were needed for this, however only in the dev scope. 

### php.ini Quoting
I also fixed a problem in php.ini configuration.
It was possible that the manifest would include sth like

```
php::ini { 'custom':
  value  => ['display_errors = On', 'error_reporting = -1', 'foo = bar'],
...
}
```

However the values have to be properly quoted
```
php::ini { 'custom':
  value  => ['display_errors = On', 'error_reporting = -1', 'foo = "bar"'],
...
}
```