Add join documentation, better null handling
Implement Foreign Key Nulling for mixin-less things

When you leave a foreign key field blank, it will assume the zero value
for that field, for int's it's zero. When you don't include a mixin, you
can't indicate that a field is null, or if you are instantiating the
struct and don't initialize it, you can't indicate that a foreign key
should be null. In that case, db will compare the foreign key field to
the zero field and if they match, then the foreign key field will be set
to null. This is only for foreign key fields and not all nullable
fields.