new implementation of map for AbstractArray

This has better type behavior, calling promote_type to widen the result
type as necessary. It is also faster, since each invocation of the inner
loop function (map_to!) only handles a single element type, allowing a
type declaration to be inserted. This is faster than the custom method
for mapping over Ranges, so that has been subsumed.
Merge branch 'master' of github.com:JuliaLang/julia