Implement Redwood::Util::Query.describe(query)
Apply Util::Query.describe when parsing query
Merge pull request #96 from 5long/fix-encoding-of-query-desc

Fix encoding of query description
require Util::Query to prevent crash on search
Merge pull request #100 from ericweikl/fix-missing-require

Missing require for sup/util/query
Enable CJK n-gram tokenization
Merge pull request #102 from 5long/enable-cjk-tokenization

Always Enable CJK n-gram Tokenization for Xapian
Initial implementation of a Gmail source.

This new source downloads emails from Gmail accounts and takes advantage of the
Gmail IMAP extensions to provide unique ascending ids and labels for sup.

This is an initial implementation and has a lot of issues.
Split the imap sync code in smaller pieces.
Remove unused functions.
Use Oj for Json serialization.

LevelDB only supports strings as keys/data so we need to serialize/deserialize
the data we input into a string format. I use Oj is a fast Json
serialize/deserialize library that works perfect for the task.
Revert Oj to Yaml.

No need to add more dependencies to SUP. Let us better use the tools we already
have (YAML) instead of adding more (Oj).
Fix bug in leveldb_put method
Add leveldb-ruby dependency.
Fix crash when searching with non ASCII characters.
Implement labels sync for old messages.
Add sup-add gmail option (thanks matthieu.rakotojaona@gmail.com)
Add fixes and refactoring (thanks matthieu.rakotojaona@gmail.com)
Add the snappy gem as dependency.

Seems that leveldb requires the snappy gem to handle databases larger than 4MB
in size. But leveldb does not include this gem in it's own dependency list so
we need to add it to sup.

See: https://github.com/wmorgan/leveldb-ruby/issues/23
Support sync of multiple mailboxes, not only All mailbox