v1.0

This is the branch for v1.0.

The whole codebase has been refactored, and tests have been added.

### The new architecture

Everything is much simpler and revolves around 1 concept: `StepInterface`. This represents a *step* in the generation process, and obviously the generation process contains an ordered list of "steps". This is the "command" pattern.

For example:

- `LoadConfig`: loads the `couscous.yml` config file or use default config
- `RunBowerInstall`
- `LoadMarkdownFiles`: load the content of all the `*.md` files in memory
- `RenderMarkdown`: render the markdown content
- `WriteFiles`: write the in-memory processed files to the target directory
- …

For example if we want to add support for a custom Markdown tag, we just have to add a step after `LoadMarkdownFiles` and before `RenderMarkdown`. The list of steps is defined through dependency injection in the `src/config.php` file.

Each step takes a `Repository` model object (better name idea?) which is composed of files (stored in-memory). Steps can then load files from disk to add then to the Repository, or process those that are loaded, or do something else… Files extend `Couscous\Model\File` and can be for example `MarkdownFile`, `HtmlFile`, …

### TODO

- [x] Refactor everything in a simpler architecture
- [x] #9 Get the page list in a Twig variable
- [ ] #9 Documentation
- [x] #10 Bower support using [BowerPHP](http://bowerphp.org/)
- [x] Improved detection of file changed during preview
- [x] #12 Twig compilation prevent to reload templates
- [x] #13 There should be no required file to run Couscous
- [ ] #14 Ship with a default beautiful template
- [ ] #15 Automatically create the gh-pages branch if it doesn't exist
- [ ] #16 Add a `dev` variable in layouts to know when working in "preview"
- [x] #17 Simplify templates
- [x] Document the new architecture
- [ ] Improve documentation
- [ ] Redo the website template (WIP)
- [ ] Move the project to a GitHub organization (CouscousPHP)?
- [ ] Use a domain name (couscous.io, couscous.club)?