fzhehe's contribution
Merge remote branch 'wangli/master'

Conflicts:
	.cproject
	.gitignore
	BlockStreamIterator/BlockStreamPrint.cpp
	Parsetree/Test/parser_test.cpp
	Test/TestMain.cpp
Before refine the codes in ExpandableAggregation
Before add Barrier Number into ExpandableBlockStreamIteratorBase
In the current version, theoretically, scan, filter, join, and
aggregation supports new expanded thread being added at any time during
the execution.
Before merging with Li's master
Before merging with My master branch
modified some file.
Merge branch 'LatestMaster' into ExpandableFramework

Conflicts:
	.cproject
	BlockStreamIterator/BlockStreamPrint.cpp
	Test/TestMain.cpp
	ids.h
Merge branch 'fzu' into ExpandableFramework

Conflicts:
	Test/TestMain.cpp
	ids.h
fixed error caused by last merge
Expandable framework seems to work~ -_-.
Fixed a bug in aggregation caused by partially lock.
add proper const property to some methods.
Add property const properties to some methods.
support lock and unlock on a given hash bucket.
Add context structure and related access methods.
Currently, the context contains the block for asking and its iterator.
Expanded thread can be created and dropped on demands. Context has been
integrated into Filter.
Expandable Scan and Filter currently well support threading expanding
and thread shrinking
Expandable aggregation and join can expand and thresh thread at any time
during the execution.