ENH: add subok flag to stride_tricks (and thus broadcast_arrays)

As is, `np.broadcast_arrays` does not preserve subclasses, even though for the shape manipulation subclasses should not be a problem. This PR adds a `subok` option that allows one to change that, but is `False` by default, so that existing code will continue to behave as is.
Actually, I did the wrong test: if the subclass does not define `__array_finalize__`, then it is `None` and hence not callable. I now replaced it with an if statement.