add internal FuzzyQuery using ~ as prefix
add AnyFuzzyQuery to match on any fields using fuzzy matching
use fuzzy threshold from config file
add support for extending the query syntax with plugins
make fuzzy use PluginQuery instead of a subcommand
fuzzy: use threshold value from config
fuzzy: add prefix config
expclude prefix from query term
fix param odrder for match function of PluginQuery
fuzzy: use smartcase for the pattern

ignore case unless the pattern contains a capital letter
change queries() function to returns a dict
of {prefix: PluginQuery}

use the class __name__ as sqlite function name

make RegexpQuery use the AnyPluginQuery
fix wrong indentation Oooops!
update query tests
fix escape colons in the query term
fix fuzzy config
update the docstrings and cleanup the new PluginQuery system
document how extend the query syntax in plugins using PluginQuery

update the fuzzy documentation
changelog / doc for #214
Merge #214 extend query syntax from plugins

Conflicts:
	docs/changelog.rst
some low-level tweaks to extensible queries (#214)
refactor: everything is like a plugin query (#214)

The initial idea for this refactor was motivated by the need to make
PluginQuery.match() have the same method signature as the match() methods on
other queries. That is, it needed to take an *item*, not the pattern and
value. (The pattern is supplied when the query is constructed.) So it made
sense to move the value-to-pattern code to a class method.

But then I realized that all the other FieldQuery subclasses needed to do
essentially the same thing. So I eliminated PluginQuery altogether and
refactored FieldQuery to subsume its functionality. I then changed all the
other FieldQuery subclasses to conform to the same pattern.

This has the side effect of allowing different kinds of queries (even
non-field queries) down the road.