Added the `!queens` command

This command implements the n queens problem. As a safeguard, only up to n=14 is
calculated, otherwise the bot times out.
Updated and optimized the n queens problem.

I finally understood how foldM on lists work :happy: Since this provides an
efficient way of backtracking, no guard is needed for reasonable numbers
anymore.
Merge pull request #17 from keneanung/Queens

Adding nqueens component. Also updates a few dependency versions, allowing an easier build from scratch.
Fixed a bug with calculating safe positions

The bug was noted in numberten/zhenya_bot#20. Reason was using a wrong reference
as starting point for further checking for safe positions. Sadly this fix
introduces a massive runtime penalty. I am not sure about the reason for that.
Improved the "!queens" command

It is now hardened against DOS by supplying high numbers (greater than 25 for
now). This is to remedy numberten/zhenya_bot#19

Also this introduces pretty printing of the chess board for boards up to 12
rows/columns according to numberten/zhenya_bot#20. For non monospaced fonts this looks a bit ugly though :(
Merge pull request #21 from keneanung/Queens

Adapted the queens module to fix open issues. Closes #20 and #19.
Add rate limiting (closes #18).
Lower required HTTP version.
Filter previous greps in !grep (closes #15)
Add -m to !grep for number of matches (closes #14)
Substitute randomly defined word with search term.

Closes: #16
Strictly compute ngram models (closes #9)
Fix crash on file not exist (closes #23)

Also gets rid of error message when attempting to clustering an empty list of
nicks.
Make stalker component more robust.

The component now tracks nicks across multiple channels and can handle names
spread across multiple 353 replies from the server.
Do not use strict maps
added -m flag to grep usage message
Update README.md

Updated general description.
Added compatibility section.
Updated commands section.

#24
Added usage messages to command component constructors. Updated all components to reflect changes to Command api. Closes #30 and closes #29.
Merge branch 'issue30'
added MIT license