Server-render React, Dust and HBS examples, expose source code to client

This PR adds a `getExamples()` function that helps with retrieving all examples for a specific template engine (React, Dust, or HBS) and constructing an object out of them. This object is then used to render out the examples server-side, and also for exposing the source-code for the example to the client, to help with client-side Intl.

## Examples object
The object looks something like this.

```js
{
  books: {
    source: [Source code as a string]
    compiled: [Compiled version based on the template engine]
    name: [File name, minus the file extension]
    identifier: [File name, with the file extension]
  }
}
```
## Usage
Inside your route handler, you can call it like this:

### handlebars.js (route handler)
```js
var getExamples = require('../lib/examples');
...
getExamples('handlebars', {cache: true}).then(function (examples) {
    //do something with the examples object here
    res.render('handlebars', {
        examples: examples
    });
});
```

And then inside your `handlebars.hbs` file, you can use the `{{examples}}` context:

### handlebars.hbs (template):

```handlebars
<div class="example">
    {{{examples.books.rendered}}}
</div>

{{#code}}
{{{examples.books.source}}}
{{/code}}
```

I've modified the Dust, React and HBS route handlers to already do the above, and I have some simple examples there.

## Examples Directory

All the examples now live inside `views/examples/`. There's a directory for each template engine and we can add more if needed. Don't put any examples in `views/partials/`. We should use partials only for website stuff.

Ok sure. But getExamples() is creating fresh objects. See https://github.com/yahoo/js-intl-docs/pull/17/files#diff-10f908c82c06425a4f8afdf41e80546eR87

You're right, it's a bad idea to mutate objects that aren't yours so I'll update this.