Fix multiple corner cases in the eager_graph support (Fixes #771)

1) If an SQL::Identifier object containing a double underscore
was used as table in the receiving dataset or one of the arguments,
the automatically created alias symbol for it contained a double
underscore, and it was used to qualify other identifiers, leading
to incorrect/broken SQL used.  Wrap such alias symbols in
SQL::Identifiers before using them as qualifiers to avoid the issue.

2) When the first dataset graphed contains a join (which results
in an implicit from_self), override the implicit_quailfier with the
alias used in the from_self, so that the join conditions are set up
correctly.

3) When the first dataset graphed selects from a quailfied identifier,
make the join conditions and the selected columns for that dataset
use the fully-qualified name.

4) When eager_graphing, set the implicit qualifier for the initial
graphs to the first source of the dataset, instead of to the alias
symbol.