Update to Lucene.Net.Linq 3.5.0 and add support for advanced search
Handle case sensitivity in boolean strings.
Search works similar to how NuGet Gallery works.

- Treat search terms containing special characters as advanced queries.
- Default to partial ID search on invalid field.
- Treat ID field as partial match of Package ID.
- Treat PackageId field as exact match of Package ID.
Change how some fields are analyzed.

- SearchId is tokenzed on dot
- PathAnalyzer simply tokenizes on dot and slashes
- Rename PorterStemAnalyzer to TextAnalyzer
Always limit GetUpdates to versions newer than current version.

Fixes returning lower versions when a version constrain is provided.
Filter package search by framework version.

Creates a set of framework names supported by packages in the index
and uses that to built a query of packages that are compatible
with the search criteria.
Add DisplayTitle property that uses Title by default or Id when Title is blank.

Replace incompatible $orderby in OData queries with simpler more intuitive ordering.
Remove unused variable and rewrite assertion to compare as integers.
Use MergeFactor=2 for Users index

Keeps index small and optimized for reads.
Add LuceneMergeFactor configuration setting to enable overriding MergeFactor.

Default MergeFactor is still 10.
Use optimized Lucene.Net.Linq ISession.Add overload when adding a new package.

This speeds up indexing by avoiding delete-by-id operations.