Fix how numbers are handled in text transformations.

Conversions between hyphenated and camel-case forms didn't seem to handle
numbers correctly. I've now clarified the expected behaviour in both javadoc
and the class specification. I have also updated the specification to verify
the handling of numbers.
Bump Gradle plugin version to 1.0.4.
Add support for sub-templates.

Implementation of issue #86. Sub-templates are just like normal project
templates, except they are not published separately. Instead, they are included
directly in a project template package.

The user can run the new `generate` command to activate a sub-template whose
job it is to actually do something, such as create new files in the project.
The user can also pass in parameters if the sub-template uses the `ask()`
method.

The Gradle plugin for managing Lazybones templates now allows you to define
relationships between main templates and sub-templates. The sub-templates are
packaged separately and then included into the main template package zip.

You create sub-templates as normal templates except that the directory name
must begin with 'subtmpl-'. This ensures that they aren't included in the
`packageAllTemplates`, `installAllTemplates` and `publishAllTemplates` as they
shouldn't be published independently. You then use the Lazybones extension to
declare that a template includes some set of sub-templates. The plugin does
the rest.
Remove '-template' from package name only if suffix.

The rule/task for installing templates was removing the string '-template'
from any part of the template name, not just if it was a suffix.
Use appropriate capitalisation for rule descriptions.

The descriptions for the Gradle plugin's rules used camel case with an initial
lowercase letter, e.g. installTemplate<tmplName>. But the user has to specify
the template name with an initial capital letter, such as installTemplateDummy.
So now the rules are like installTemplate<TmplName> to avoid confusion.
Rename integTests task to integTest for consistency.
Add support for template name qualifiers

When using the `create` or `generate` command, users can include extra info
with the template name, e.g. generate artifact::controller. In this example,
the template name is 'artifact' and there is one qualifier, 'controller'.

The qualifiers are available to templates via the new `tmplQualifiers` property
on `LazybonesScript`.
Use Gradle distribution with docs included.