A little maintenance
Improved readability of the following comparisn functions in the LexicalLookup static class by using pattern matching and removing/abstracting type checking.

     IsSimilarTo(IVerbal second, IVerbal second)
     IsSimilarTo(IEntity second, IEntity second)
     IsSimilarTo(IDescriptor second, IDescriptor second)
     IsSimilarTo(IAdverbial second, IAdverbial second)

Shortened some redundent function names used in gender checks.

Added new "None" Extension Methods for all IEnumerable<T>

bool None (this IEnumerable<T> source)

None() is equivalent to  !(Any())
eg:
var myWords = doc.GetWords();

bool noMatches1 = !myWords .Any();
bool noMatches2 = myWords .None();

noMatches1 == noMatches2 // true

bool None (this IEnumerable<T> source, Func<T, bool> predicate)

None(predicate) is equivalent to  !(Any(predicate))

eg:
var myWords = doc.GetWords();

bool noMatches1 = !myWords .Any(w => w.Text == "apple");
bool noMatches2 = myWords .None(w => w.Text == "apple");

noMatches1 == noMatches2 // true

Removed the must be ILexical for type T from:

ISet<T> ToSet<T>(
       this IEnumerable<T> source,
       Func<T, T, bool> elementComparer,
       Func<T, int> elementHasher
)

which returns an implementation of ISet<T> based on  the distinctness creterion or crieteria specified by the elementComparer function, and the elementHasher function.