Make stemming language configurable.

This change allows you to configure the language used for stemming,
which should result in better search results for users with
predominantly non-English mail.

This change is backwards-compatible - the default stemming language
remains English, unless a specific language is set in your config.yaml.
To do so, add the key :stem_language to you config.yaml with one of
these values:

  danish, dutch, english, finnish, french, german, hungarian, italian,
  norwegian, portuguese, romanian, russian, spanish, swedish, turkish

IMPORTANT: after changing the language, you must re-index all of your
mail!

See http://xapian.org/docs/stemming.html for more information on how
Xapian performs stemming.
Added new hook 'gpg-expand-keys'

sup does not support GPG groups, since GPGME ignores group definitions
in gpg.conf by design. Therefore, there is no way e.g. to send encrypted
mails to mailing lists using GPG groups.

The new hook receives the list of current recipients and allows the user
to swap recipients with other email addresses or key IDs. A simple hook
to add group support could look like this:

----------8<---------------
lookup_table = {}

`gpg --with-colons --list-config group 2> /dev/null`.each_line do |line|
  email_and_keys = line.split(':')[2..3]
  lookup_table[email_and_keys[0].gsub(/[<>]/, '')] = email_and_keys[1].strip.split(';')
end

recipients.map { |r| lookup_table.has_key?(r) ? lookup_table[r] : r }.flatten
---------->8---------------
Merge pull request #6 from ericweikl/stem-language

Make stemming language configurable
Merge pull request #7 from ericweikl/gpg-expand-keys

Add new hook 'gpg-expand-keys'
Fix #5: Require relative that works on both ruby 1.8 and 1.9

A merge of issue #2 and #5, conditionally use the safer require_relative
if present (>= ruby 1.9).
Fix #9: Convert use of Rake::GemPackageTask to Gem::PackageTask

 Rake::GemPackageTask is deprecated, update to Gem::PackageTask
Fix #10: Use a maintained fork of xapian-full
Make the tests pass again

Some tests are broken due to API and other implementation changes. This
patch makes the tests in test_header_parsing.rb and test_message.rb pass
again. I did have to change one assertion in test_blank_header_lines,
since it assumed that extra whitespace between List-Unsubscribe entries
is removed, which it currently isn't.

This does not fix test_server.rb, however, as the implementation also
has issues. I guess server.rb was the initial attempt on a sup server,
which is probably obsolete anyhow. Maybe it should be deleted?

Also, adds a rake testing task, so the tests will hopefully be run more
often :-)
Fix #12: Require 'iconv' before patching it

Signed-off-by: Gaute Hope <eg@gaute.vetsj.com>
Merge #15: Integrate Travis

commit deb59197d98e831670c71be1a13125f2725a7bcf
Author: Whyme Lyu <callme5long@gmail.com>
Date:   Wed Mar 27 09:57:57 2013 +0800

    A `rake travis` task

commit ddd76be0d1c88e7778291cff0aae01d35cf14fb7
Author: Whyme Lyu <callme5long@gmail.com>
Date:   Thu Mar 21 22:52:07 2013 +0800

    Gemfile and .travis.yml to get started
add ruby 2.0.0 to rvm
Merge pull request #21 from gauteh/add-rvm-2.0.0-to-travis

add ruby 2.0.0 to rvm
Fix updating contact aliases. Fixes an UndefinedMethodError. I lost one too many emails.
Update name and adresses to our fork

commit 6c16306db15e0768fcd850e8c9b625103b71c0a5
Author: Gaute Hope <eg@gaute.vetsj.com>
Date:   Sat Apr 13 14:37:34 2013 +0200

    update gemspec

commit d4288cba45896aa601cebfe8fdefa66d406ccdb0
Author: Gaute Hope <eg@gaute.vetsj.com>
Date:   Sat Apr 13 11:02:57 2013 +0200

    Update bug tracker address, re-brand to sup developers
upd webpage to supmua.org
Fix problem with account selector

When sending a message, the account selector was ignoring
the account set by the before-edit hook.  Fix this
by running the hook before setting up the account selector.
Added simple auto-completion to search prompt

Currently, label completions for all labels are supported, as well as
these keywords: from, to, after, date, before, date, limit, AND, OR, NOT
Merge #16: Fix YAML regression in 1.9

Squashed commit of the following:

commit a26b99c64e2da4115ea47606ae8b66f0b008b002
Author: Whyme Lyu <callme5long@gmail.com>
Date:   Tue Mar 26 23:03:50 2013 +0800

    Ensure Syck is used.

    In the long run we'd better drop Syck in favor of Psych

commit a99a2b244063c2088d91688f667ee68f05f24df0
Author: Whyme Lyu <callme5long@gmail.com>
Date:   Tue Mar 26 23:03:25 2013 +0800

    A regression test for YAMLing in 1.9
sup-config: call to_s() on user input

Highline seems to use its own string wrapper for data entered by the
user. When converting to yaml, the value is annotated with
'!str:HighLine::String', which leads to errors when starting sup or
sup-sync.

Fixes issue #28
Merge pull request #29 from ericweikl/sup-config-bug28

sup-config: call to_s() on user input