adds more information to the documentation of generators

I had to write a generator for the first time and missed some information in the existing docs. I saved some internal cosmic energy by not complaining on Twitter and redirected it to sit my ass on a chair and write this PR :).

* Defines what is a generator.

* Documents the (non-existing) contract of `generate`.

* Explains when do generators run.

* Covers `site.pages` and `site.static_files`.

* Adds a more simple example where we inject data into an existing page.

* Revises the description of `generate` in the table at the bottom.