Add Broadcast module with staged broadcast operations
Add broadcast! function. Make broadcast(f) and broadcast!(f) do function wrapping.
Provide broadcast_function separate from broadcast, make broadcast(f) = f()

Also provide separate broadcast!_function
Make broadcast.jl work with StridedArray arguments. Add some gensyms.
Add broadcast operations to docs, update getindex and setindex! docs slightly.

Also add broadcast.jl to test/Makefile.
Merge pull request #3100 from toivoh/staged_bsxfun

Staged bsxfun and other broadcast operations