introduce IAlias interface, make RowFieldsBase implement IAlias (t0 alias by default), add ability to replace t0 alias with Aliased extension method, so complex queries can be written without using alias + alias.Field.Dummy syntax (just alias.Dummy)

sample:

var c = CategoryRow.Fields.As("c");
var p = ProductRow.Fields.As("p");
var s = SupplierRow.Fields.As("s");

new SqlQuery().From(p)
	.Select(p.ProductID)
	.Select(s.CompanyName)
	.LeftJoin(s, s.SupplierID._ == p.SupplierID._)
	.LeftJoin(c, c.CategoryID._ == p.CategoryID._)
	.Where(s.CompanyName._.Contains("some"))

SELECT
p.ProductID AS ProductID,
s.CompanyName AS CompanyName
FROM Products p
LEFT JOIN Suppliers s ON (s.SupplierID = p.SupplierID)
LEFT JOIN Categories c ON (c.CategoryID = p.CategoryID)
WHERE s.CompanyName LIKE @p1