Supported remapping the foreign keys of polymorphic associations

The ID Map preserves the relationships between records in a relational database by remapping foreign keys.

The ID map can return the correct (new) value for a foreign key given two things:
 - The foreign table (**dependency**)
 - The foreign record's legacy ID (**legacy_id**)

To support polymorphic relationships, we needed to allow two scenarios:

 1. Both values are present at compile time (when `CollectionImporter#prepare_mappings!` is called)
 2. **dependency** is supposed at run time (when `CollectionImporter#remap_foreign_keys!` is called)

The current implementation only assumed the first scenario.