Rename functional spec for consistency.
Rename integTests task to integTest for consistency.
Allow project templates to pass params to sub-templates.

Many project templates use `ask()` to collect parameters from the user. If
those parameters are named, they will now be saved into a properties file in
the .lazybones directory. The parameters in that file will then be passed into
sub-templates as a `parentParams` variable.
Tidy up and fix codeNARC violations.
Fix Gradle plugin's installTemplate task.