Issue #20 - hashjoin implementation improvements

Use KeyValueSchema for joined results:

1) for join tables that will be built as hash:
    project all required columns into a schema.
2) for the join table against which the final scan will be performed:
    retain those row key columns in the rowkey, and project the rest of all required columns into a schema.