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
- Having difficulty with the JavaScript side of things @slashdotdash, there seems to be something with the libraries - your help would be greatly appreciated!
You've referenced `3` as the minimum number of characters elsewhere, I'm assuming this is what you meant?