allow "foreign" keys to point to the same table

This is a simpleminded approach to having the automatic
dropdowns, list display, etc work when your "foreign key" is
actually in the same table.  Without this, you get ambiguity
in your SQL because two tables have the same alias.
Switch foreign key join to left join

Need a left join, or we don't see the rows in
list view where the foreign keys aren't set (in
the case of foreign keys that are nullable)
Merge pull request #32 from msouth/feature/slightly_smarter_aliases

Feature/slightly smarter aliases