Search only by module name when a term is prefixed with "module:"

The expanded search (previously only used for searches within specific
distributions) is used so that modules are not collapsed under their
distributions.  Someone searching for a list of modules doesn't want
some of the modules elided from the results.

Sorting of results is unchanged, but may want to be reconsidered later
for module: searches after comparing, for example, the vast difference
between module:MooseX::Types and module:MooseX::Type.

While colons are special characters in Lucene's query syntax [1], I
don't think we need to escape them in this case because the query term
contains no spaces.  Similarly, we don't seem to need to escape other
special characters like hyphens in distribution names.

[1] http://lucene.apache.org/core/2_9_4/queryparsersyntax.html#Escaping%20Special%20Characters
Merge pull request #1246 from CPAN-API/tsibley/module-name-search

Search only by module name when a term is prefixed with "module:"
Require a word character after the colon in module: searches

This avoids mistakenly munging queries like "module::metadata".
Only replace special search terms when they're a standalone word

Otherwise we run the risk of badly munging typo'd queries like
"test::dist:manifest" into something stranger.

Note that the character class for distribution names had to change to
include hyphens since the end is now anchored.
Merge pull request #1247 from CPAN-API/tsibley/stricter-special-query-terms

Stricter munging of special query terms