Chef 154 - restore ability to specify a custom template name

Previously, the 'template' attribute was used to specify
the name the prefix of a template name that could be different
from the service name.

Commit 66c02ca changed the default template attribute to 'true'
and commit 27e7452 forced the template name to match the service
name. (Except for control files, which appears to have been
an oversight.)

This commit restores the original use of the template attribute.
If template is a String, then it is used to determine template
file paths, otherwise, the service name is used.

This feature is important for service factories, which use
a common template to generate multiple services with different
names.