JoinSqlBuilder - Added Alias for queries

Added aliases for selected columns for queries that have multiple columns of the same name.

example:
```C#
var jn = new JoinSqlBuilder<AVSView, AVSTransaction>();
        jn = jn.LeftJoin<AVSTransaction, AVSStatus>(x => x.StatusId, x => x.Id, x => new { TransactionId = x.Id, BankAccountNumber = x.AccountNo }, x => new { StatusId = x.Id, x.Description })
               .OrderBy<AVSStatus>(x => x.Description)
                .Where<AVSTransaction>(x => x.Id == 1);
Console.Write(jn.ToSql());
```

Used to generate:
```SQL
SELECT "avs_transaction"."id","avs_transaction"."account_no","avs_status"."id","avs_status"."description" 
FROM "avs_transaction" 
 LEFT OUTER JOIN  "avs_status" ON "avs_transaction"."status_id" = "avs_status"."id"  
WHERE ("avs_transaction"."id" = 1) 
ORDER BY "avs_status"."description" ASC 
```

Now Generates:
```SQL
SELECT "avs_transaction"."id" AS "transaction_id","avs_transaction"."account_no" AS "bank_account_number","avs_status"."id" AS "status_id","avs_status"."description" AS "description" 
FROM "avs_transaction" 
 LEFT OUTER JOIN  "avs_status" ON "avs_transaction"."status_id" = "avs_status"."id"  
WHERE ("avs_transaction"."id" = 1) 
ORDER BY "avs_status"."description" ASC  
```