Improve result type of broadcasting ./ and .\, add broadcasting .^

This patch makes `./`, `.\`, and `.^` be broadcasting for all `StridedArray` arguments, and produces more or less the same result types as the previous unbroadcasted versions. I added a case for `.^` where the exponent is rational.

Does it seem reasonable to compute the result type as at the bottom of `broadcast.jl`?