Denorm function could return either an object or a PK

Without this, foreign key fields (like 'some_id') could end up
having objects instead of IDs.
self-referencing foreign keys without a defined type for DependOnRelated fallback to forward
Not all Primary Keys are called 'id'
Multi-table support for denorm dependencies
Using quote_name for all field names.

Some fields need this (particularly those with lower and upper case
or those that otherwise would be reserved keywords).

Along the way, connection's using 'using' was normalized to be
consistently used and passed around where it was needed.
Added support for swapped models
Full compatibility with Django 1.6 (tests passing)