Mapping over [] returns []. Fixes #6719

`map(f, [])` now returns `[]` (an `Array{None,1}`).

Running `[][map(x -> x, [])]` no longer fails due to bounds checking errors.
This was happening because `[]` is of type `Array{None, 1}`, whereas ie
`map(int, [])` is of type `Array{Any, 1}`.