Add support for search-by-language.

(List of language files from whatever version of Ack I had laying around)
remove language list duplication
doco for search-by-language
fix #217
Skip long lines (fixes #189)
Major refactor of ignore code.  Fixes #168.  Fixes #127.
fix handling of hgignore files (refs #127)
completions for languages and long-line-length
fix #208
do many fewer filename matches
process ignores in reverse order
correct order of comparisons to prevent walking off end of array
fix fencepost error
study patterns for ignores
fix uninitialized var
use alternations for regexes (speedup)
Add support for .bzrignore
Add an initial implementation of the shortoutput option

Add a description and configuration option for --[no]shortoutout for
shorter match output; add an initial whitespace standardisation
implementation
Improve the shortoutput option with long line truncation and wrapping

Extend the --shortoutput option, by detecting the current terminal
width and ensuring that each result match doesn't take up more than
four lines - truncating as necessary.  Improve the wrapping of multiple
lines for cleaner output, and add a new --color-truncate-warn option to
highlight the truncation warning.
Add a --stats-summary option for shorter stats and info

Add a new --stats-summary option to allow output of very basic stats
(number of matches only), together with two pieces of info - case
sensitivity and symlink follow state.