Offline search index generation

- Generates the search index at `jekyll build` time, rather than on the client.
- Now creates an unminified, minified and a map JS file (choices!)
- Optimised some of the ruby as I went through it

Now works :) I haven't written any tests, your thoughts appreciated.