[bug 1039523] Infrastructure for instant search

This does several things:
- Adds nunjucks and grunt to NPM dependencies
- Adds a `Gruntfile` to create grunt tasks to make development easier
- Adds a new manager command to precompile nunjucks templates
- Updates travis and deploy scripts to precompile nunjucks templates
- Updates the search view to return more consistent data in JSON format

r?
I talked about using Gulp instead of Grunt. On that note, I want to show you the equivalent Gulp file.

```javascript
var gulp = require('gulp');
var nunjucks = require('gulp-nunjucks');
var watch = require('gulp-watch');

gulp.task('nunjucks', function() {
    return gulp.src('kitsune/sumo/static/tpl/*')
        .pipe(nunjucks())
        .pipe(concat('nunjucks-templates.js'))
        .pipe(gulp.dest('kitsune/sumo/static/js/'));
});

gulp.task('watch', ['nunjucks'], function() {
    return gulp.watch('kitsune/sumo/static/tpl/*', ['nunjucks']);
});

gulp.task('default', ['watch']);
```

(I didn't test this, I just typed it here, but I'm pretty sure it is correct.)

I'd prefer Gulp for two reasons: first, I think that the configuration is simpler and more powerful, mainly because it is easy to compose small things instead of using rigid big things. Second, Yaocho uses Gulp extensively, and I think it is a good idea to standardize on one build system.

If you'd still prefer to keep Grunt, this looks like a perfectly cromulent gruntfile, and I won't r- this patch because of it.