DRILL-1283: JSON project pushdown.
Allows for users to avoid reading columns of a JSON file, including those that include elements of JSON that drill does not currently support. This can be used to query a subset of an existing file while avoiding elements like schema changes in some columns or nulls in lists that are currently not compatible with Drill.
Patch was revised based on Hanifi's review comments, and then rebased off of the merge branch.