Add compound key support for B-tree
Sort by compound index

Reverse sort is not implemented yet. For now indexes are used only when
sort order exactly matches index order, even for single-field indexes.
Fix error when searching by index and sorting by another one
Improved test for compound indexes
Skip compound indexes when resolving query

This is a temporary fix to pass tests
Use indexes for both forward and reverse sorting
Fix comparison operators for reverse index search
One more test for $range case
Use 1-st field of compound indexes for search
Search using subfields of compound indexes
Rewrite code related to index search

Build something like query plan - consecutive steps we have to perform to
process all appropriate indexes.
Remove recursion when searching by compound index.
Apply sort optimization when sorting by search index even in case of
multi-field sort.
More test cases for compound indexes
Revert to common storage for splitted query parts

It will be used later
Move vars to the place where they are used
Try to use more indexes if possible

But this way is also not optimal:
1) some indexes may be not necessary;
2) indexes with short keys may be preferable.
Choose more optimal set of indexes

Pairwise compare potential indexes and strike out the worst one. When
there is nothing to strike out, the resulting set is minimal and
sufficient.
Merge https://github.com/sergeyksv/tingodb

Conflicts:
	lib/tindex.js
Fix 'duplicate key' error on index with mixed types
Fix $in and $nin for compound indexes
Merge pull request #33 from al-s/compound_index_feature

Compound index feature. Also fixes #17