remove unused methods in HashCache
add JoinStatement and related classes
add comments for SubqueryJoinTableNode
modify SQL lexer for joins
modify join compilation
add HashJoinPlan
add more implementation to QueryCompiler
fix conflicts
fix compilation
Add more querycompiler impl
Complete QueryCompiler for joins
Fix UT regressions
fix unit test
add post join filter in runtime
add subquery extraction implementation in JoinCompiler
add JoinCompiler impl
Merge remote-tracking branch 'upstream/master'

Conflicts:
	src/main/java/com/salesforce/phoenix/cache/HashCache.java
	src/main/java/com/salesforce/phoenix/cache/TenantCacheImpl.java
	src/main/java/com/salesforce/phoenix/compile/QueryCompiler.java
	src/main/java/com/salesforce/phoenix/compile/StatementContext.java
	src/main/java/com/salesforce/phoenix/coprocessor/HashJoinRegionScanner.java
	src/main/java/com/salesforce/phoenix/join/HashCacheClient.java
	src/main/java/com/salesforce/phoenix/join/HashJoinInfo.java
add scan projection implementation
Set info ports to -1
Setting info port to -1 in a few missing places in secondary index tests, decreasing TTL of metadata cache since it can lead to issue #417