Implement autogenerate detection for foreign key constraints

Issue #178
Update and add some tests for checking fk

fixes issue #178
Add composite fk support, add more tests
Add _add_fk_constraint and _drop_fk_constraint to render
Some refactor of _add_fk_constraint
Fix failing unittests and update compare_fk method
- Merge branch 'add_fk_check' of https://bitbucket.org/akamyshnikova/alembic into pr32
- complete merge, get all tests passing
- use 'foreignkey' literal

Conflicts:
	alembic/autogenerate/compare.py
	tests/test_autogenerate.py
- refactor the FK merge a bit
- getting at attributes of FKs varies a bit on SQLA versions,
so implement an _fk_spec() called for all FK inspection
- to enable include_object() filters and allow the FK constraint
code to flow like that of indexes/uniques, change the approach
so that we deal with an _fk_constraint_sig() object again which
contains the real ForeignKeyConstraint() within; we need this
anyway for include_object, but also allows us to use the standard
"drop_constraint" call for rendering.
- enhance tests in test_autogen_fks to support real FK databases like
Postgresql, MySQL, add in InnoDB flags and ensure that FKs refer
to real primary key constraints for PG support
- implement and test include_object() support for FKs
- inspectors all have get_foreign_keys(), no need to check
- repair the drop_constraint call to quote the "type" and table
name correctly, run all constraint drops through drop_constraint()
for rendering
- fix up schema identifiers for foreign key autogens
- name the include_object hook "foreign_key_constraint"
- changelog and other doc updates, fixes #178
- fix drop_constraint() unit tests and add two more for FKs