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.
This can just be list(self._signals) + list(self._eager_signals), if below comment is implemented.