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.
It feels like unregister() should unregister from all the signals provided in register(), rather than allowing selective unregistration. I'd suggest also storing self._signals, in the same way as you're storing self._eager_signals, and looping over both of these in unregister.