title: String case sensitive in LiteDB query
body: <p>In various environment, the user name is case insensitive. We query <code>admin</code> equal to <code>ADMIN</code>. I have searched <code>LiteDB</code> called <code>CompareTo</code> to compare two objects that I can't find a point to make string compared as case insensitive.</p>
  
  <p>The code in <code>QueryEquals.cs</code></p>
  
  <pre><code>internal override IEnumerable&lt;IndexNode&gt; ExecuteIndex(IndexService indexer, CollectionIndex index)
  {
      var node = indexer.Find(index, _value, false, Query.Ascending);
  
      if (node == null) yield break;
  
      yield return node;
  
      if (index.Unique == false)
      {
          // navigate using next[0] do next node - if equals, returns
          while (!node.Next[0].IsEmpty &amp;&amp; ((node = indexer.GetNode(node.Next[0])).Key.CompareTo(_value) == 0))
          {
              if (node.IsHeadTail(index)) yield break;
  
              yield return node;
          }
      }
  }
  </code></pre>
  
  <p>The propositional we can case insensitive</p>
  
  <pre><code>using (var db = new LiteRepository("lite.db"))
  {
      db.Insert(new User { Name = "John" });
      var user = db.Query&lt;User&gt;()
          .Where(x =&gt; x.Name == "JOHN")
          .FirstOrDefault(); // proposal return John
      var fail = db.Query&lt;User&gt;()
          .Where(x =&gt; string.Equals(x.Name, "JOHN", StringComparison.OrdinalIgnoreCase))
          .FirstOrDefault(); // throw exception
  }
  </code></pre>
  
  <p>Another consideration, it is a possible to execute lambda expression in LiteDB without conversion by visitor?</p>