Add simple Hotkey Mode functionality

This adds a simple mode.lua library to Hydra.

Example usage, using the grid.lua library:

```lua
moom = ext.mode.bind({'shift', 'cmd'}, 'M',
   function() hydra.alert('Move Windows', 3) end,
   function() end)

moom:bind({}, 'ESCAPE', function() moom:exit() end)
moom:bind({}, 'w', ext.grid.pushwindow_up)
moom:bind({}, 'z', ext.grid.pushwindow_down)
moom:bind({}, 'a', ext.grid.pushwindow_left)
moom:bind({}, 's', ext.grid.pushwindow_right)
moom:bind({}, 'm', ext.grid.maximize_window)
```

Closes #138
Merge pull request #173 from jhgg/master

Fix error thrown when pressing down in repo too many times
Fix documentation of textgrid:resize

textgrid:resize expects a size table with w and h keys, not x and y as the documentation says.
Merge pull request #177 from christianberg/patch-1

Fix documentation of textgrid:resize
Fixed application.runningapplications(); fixes #181.
Clean up REPL docs.
Reusing the same REPL; fixes #184.
Update README.md
Fixed typo in docs.
Fix path of Hydra.app in release zipfile.
Merge pull request #185 from cmsj/master

Fix path of Hydra.app in release zipfile.
Normalizing versions for future updates.
Fixed updates.check to always call updates.available; part of #166.
Update travis.
Reorganizing project files.
Fixed release script for new paths
Fixed release script for real.
Updating donation links.
Updates confusing docstring.
Updating JSON docs.