Adds support for nested partial names

- Partials will be named according to their base directory, for example
  for a glob pattern of `source/partials/**/*.hbs`, a partial defined at
  `source/partials/foo/bar.hbs` would be assigned the name `foo/bar`.
- Also fixes throwing errors if options.data, options.helpers or
  options.partials are not defined.