refact(nunjucksTemplateEngine): convert config services into properties

The templateEngine is now an object that can be configured.

BREAKING CHANGE:

The interface for templateEngine is now different. Instead the DI creating
an object with a `render()` method, the object now contains a `getRenderer()`
method which, itself, returns the `render()` method.

Example usage:

```
function(templateEngine) {

  ...

  templateEngine.config = { ... };
  templateEngine.tags.push(...);
  var render = templateEngine.getRenderer();

  renderDocs = function(docs) {
    docs.forEach(function(doc) {
      doc.renderedContent = render(someTemplate, doc);
    });
  };
}
```
refact(renderDocsProcessor): templateEngine now has a `getRenderer()` method

Before, we could just call `render(template, data)` on the engine but this
made it difficult to configure the engine.  The new templateEngine interface
provides an extra layer by requiring that you call `getRenderer()` to get
the `render(template, data)` function.
refact(examples service): move to its own service (as part of no-config update)
refact(generateExamplesProcessor): update to no-config
refact(generateExamplesProcessor): examples should be a Map
refact(base/services): move code and trimIndentation to be DI services
refact(nunjucks/marked tag): trimIndentation is now a DI service
refact(parseExamplesProcessor): update to no-config
refact(examples package): update to no-config
refact(partialNames): move to services folder