TAJO-939: Refactoring the column resolver in LogicalPlan

See the description in TAJO-939 (https://issues.apache.org/jira/browse/TAJO-939).

I fixed the problem mentioned in the description. Also, I refactored the name resolver as follows:
 * I extracted the resolving part from LogicalPlan into made NameResolver, abstract class.
 * I made a sub class for each resolving level.
 * I extracted some common parts from the past resolving code and made into utility methods.
name references in select list can be only actual column names. They are addressed in the manner at https://github.com/apache/tajo/pull/71/files#diff-c11c2244fea624cb7b08f6906d554cd4R470.

In contrast, setRawTargets() in visitProjection should deal with actual fields as well as temporal fields generated by common subexpression elimination. So, it should use RELS_AND_SUBEXPRS.