QueryBuilder::addCriteria improvements

1. Fix problem with different comparisons on the same field in QueryExpressonVisitor (now index value is added).
2. Add criteria field aliasing. Usually oject criteria has "filed = value" notation while DQL has "alias.field = value".
First level fields are added with alias, second+ level fields (object.field, parent.object.field) are truncated to the second level (object.field) without alias. Alias map can be implemented in future.