Rewritten abcd_normalize, fix 1973

I added some tests to the function `abcd_normalize` and solved the problems pointed out by @WarrenWeckesser in gh-1973. As I explain in the last commit message:

> Code is notably simplified, at the cost of not showing specific
error messages for each shape mismatch. That is easy to fix, but
I wanted to leave this state here.

If the devs consider that it's still useful to show the old messages:

https://github.com/scipy/scipy/blob/master/scipy/signal/ltisys.py#L119

I can add them using try-except blocks around the calls to `_restore`.