Big simplification of "custom variables"

- master: [![Build Status](https://travis-ci.org/CouscousPHP/Couscous.svg?branch=master)](https://travis-ci.org/CouscousPHP/Couscous) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/CouscousPHP/Couscous/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/CouscousPHP/Couscous/?branch=master)
- branch: [![Build Status](https://travis-ci.org/CouscousPHP/Couscous.svg?branch=simplification)](https://travis-ci.org/CouscousPHP/Couscous) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/CouscousPHP/Couscous/badges/quality-score.png?b=simplification)](https://scrutinizer-ci.com/g/CouscousPHP/Couscous/?branch=simplification)

Currently you can define custom variables that you can use in Twig templates. You can set those variables in:

- `couscous.yml`, in the `template:` section, for example:

    ```yaml
    template:
        title: Hello!
    ```
- Markdown YAML front-matter, at the root, for example:

    ```markdown
    ---
    layout: home
    myVar: true
    ---
    This is my documentation.
    ```

I've tried to simplify and uniformize that:

- we name it "metadata" instead of "custom variables"
- metadata is in every files (not just Twig layouts), so that we can later add options to use metadata in Markdown for example (this is just a random example)
- the whole `couscous.yml` is loaded as metadata (and accessible in Twig), so we can write directly:

    ```yaml
    title: Hello!
    ```

    No need for a confusing section in the config. Every config entry is metadata.

In short:

- metadata can come from everywhere: from `couscous.yml`, from Markdown YAML front-matter is metadata, but also from generation steps
- metadata can be used everywhere (in generation steps, in Twig layouts, etc...)
- there is no special config option for X or Y, everything is defined as metadata, every Step can pick in metadata to find its options