first commit
initialization
Added project files.
Updated ignore list.
Added left/right page numbers to BTreeNode. Added function pointer for ReadNode. Updated SearchNode function to read nodes during the search.
Fixed build failure.
Updated for template regarding InsertEntry. Added function to initialize a tree.

* When inserting one pointer to a vector of pointers, the pointer
cannot be "const" one.
* Applied Functor (template of function pointer) feature.
Cleaned the code. Added draft version of report.
Re-factored InitRootNode function.

* Metadata information is written to page 0 as long as the index file
is created.
* InitRootNode creates a root node simply represents the data in the
index file, if any; the function caller is responsible for inserting
keys.
Updated IX_Manager to read key type while opening IX_IndexHandle. Implemented ReadNode function.
Switched test file to mine.
Added PrintNode function. Merged code from Changjian.
Minor modification; just for sync.
Simple test for height 3 and fixed defects accordingly.
Verified InsertEntry by comprehensive test. Added PrintTree function.
Minor changes
Revert "Minor changes"

This reverts commit 6cd9cdb68c777792bab2aa861facda6a8b86a71a.
Revert "Revert "Minor changes""

This reverts commit 29ea6b6d7e9ffdb80d488493b33e4728300d5b00.
Merged code from Changjian, mainly for DeleteEntry and IndexScan (not fully tested).
Added UpdateMetadata to write metadata to disk before IndexHandle is closed.