Add support for generic signals

This is achieved by adding a keyword (signals) to register. This accepts
a list-like item containing signals to connect to. Some special-casing
was added to handle pre_delete. The default is still to just connect to post_save.
Also follow relationships immediately on pre_delete
hash using copied objects when processing pre_delete
Allow the user to decide whether a signal should be treated as eager
Make register api more intuitive
Don't try to loop over None
Unregister a model from all signals
Forgot to add _signals on __init__
Remove model from _signals and _eager_signals on unregister
Add tests for generic signal functionality
Merge pull request #357 from ErwinJunge/generic-signals-support

Add support for generic signals