fix(legal): fix rendering of legal pages when loaded directly via url

I refactored the template fetching so that we can use it from the route handler when rendering pages dynamically and from the grunt task when generating pages statically.

Fixes #1372.

@shane-tomlinson r?
Since `getTemplate` returns a promise, could you do something like:

```js
   return Promise.all([
     getTemplate('terms', lang, defaultLang),
     getTemplate('privacy', lang, defaultLang)
   ]).then(allTemplates) {
    templates[lang] = {
       terms: allTemplates[0],
       privacy: allTemplates[1]
    }
   }).then(...
```

It might be marginally faster since the runtime loop can continue while waiting for the filesystem?