Clean up implementation (step 1)

 - Moves all the generators-related modules into a submodule named `generators`.
 - Moves some functions used by generators into this module, because DRY
 - Removes the whole indentation system from the generators ; nobody can see the generated code anyway, so why would it have indentation?

(I can't run `cargo test` anymore because of the change in `glfw`, so we'll have to trust travis)