added a framework to select rows depending on primary condition types.

This patch creates SQLTableRowIterator instances depending on primary
condition types. It provides efficient rows with indexes. The old
code with indexes was encapsulate in SQLTableRowIteratorColumnsEqual.

The other sub class: SQLTableRowIteratorConstatns corresponding to
PrimaryConditionConstants was also added. However, it hasn't
implemented yet. It will also be used for the condition like A=1,
which is the special form of constants (the number of value is only one)

The current implementation to select the effient row iterator is
not enough, because it is based on the number of rows that has not
full implemented yet. In addition, it would be better to take into
account of the table position (not only the number rows).