Added key combination for switching the workspaces
Now,we have key bindings to switch forward and backwards
Switching workspaces now works
Usage of Key Names instead of Key Codes in config.

Enabled usage of Key Names instead of key codes in configuration file.
This required the external
keysym(`https://github.com/substack/node-keysym`) library. The Key Names
specification can be found at:
`http://www.cl.cam.ac.uk/~mgk25/ucs/keysyms.txt`.  Symbols are not
detected, they are actual Key Names. As an example: a semicolon should
be specified as `semicolon` and not as `;`.

Signed-off-by: Martin Jorn Rogalla <martin@martinrogalla.com>
Added additional dependency to README.md

Signed-off-by: Martin Jorn Rogalla <martin@martinrogalla.com>
Added keysym dependency to `package.json`.

Signed-off-by: Martin Jorn Rogalla <martin@martinrogalla.com>
Refactored to reduce functions in airwm.js (SRP)

Reduced the number of anonymous function, espcially where it did not
make sense to use anonymous functions. A lot of SRP refactoring.
Extracted eventMask. Fixed tabbing and spaces as metioned in gitter.

Signed-off-by: Martin Jorn Rogalla <martin@martinrogalla.com>
Implemented multi-level logging with winston.

Added file and console logging via winston. Log settings such as log
levels and colorization can be adjusted in airwm.js

Signed-off-by: Martin Jorn Rogalla <martin@martinrogalla.com>
Merge branch 'master' into switchWorkspace

Signed-off-by: Martin Jorn Rogalla <martin@martinrogalla.com>

Conflicts:
	airwm.js
	config.json
Merge pull request #29 from AirWM/windowMoving

Moving the windows with the keyboard.
Merge pull request #30 from AirWM/keyNames

Enabled usage of Key Names instead of Key Codes in configuration file.
Merge pull request #31 from AirWM/refFunctionLength

Refactor: functions in airwm.js
Merge pull request #32 from AirWM/winstonLogger

Implemented multi-level logging with winston.
Merge pull request #10 from AirWM/switchWorkspace

Added support for multiple workspaces.
Add window move support in all directions.

A new Container is now created if you move in a direction
where no container exists yet. There are still some funky
results here and there but a window shouldn't get stuck in
this implementation.