Benchmark: Julia

Julia (latest 0.2-prerelease) single threaded implementation.
Julia can launch multiple processes but the startup overhead is too high for this benchmark.
Startup overhead (~2 secs) hurts performance in this test.
However, Julia is competative with the GO and Java implementations (at least on my computer).

### Julia Startup cost (load and JIT file)
rays/juliarays [master●] » time julia  Rays.jl > test.ppm
julia Rays.jl > test.ppm  2.13s user 0.03s system 99% cpu 2.170 total

### Julia (512 x 512) Single Threaded
rays/juliarays [master●] » time julia 512 512 Rays.jl > test.ppm
julia Rays.jl > test.ppm  14.95s user 0.25s system 99% cpu 15.231 total

### Java (512 x 512) Single Threaded
rays/javarays [master●] » time java rays.Raycaster 512 512 1 > test.ppm 
java rays.Raycaster 512 512 1 > test.ppm  13.75s user 0.35s system 100% cpu 13.982 total

### Java (512 x 512) Multi Threaded
java rays.Raycaster 512 512 2 > test.ppm  23.34s user 0.81s system 190% cpu 12.670 total

### Go (512 x 512) Multi Threaded
rays/gorays [master●] » time ./main 512 512 1 > test.ppm  
./main 512 512 1 > test.ppm  14.51s user 0.02s system 198% cpu 7.322 total

### C++ (512 x 512) Single Threaded
rays/cpprays [master●] » time ./cpprays 512 512 1 > test.ppm 
./cpprays 512 512 1 > test.ppm  5.80s user 0.00s system 99% cpu 5.815 total

### C++ (512 x 512) Multi Threaded
rays/cpprays [master●] » time ./cpprays 512 512 2 > test.ppm 
./cpprays 512 512 2 > test.ppm  6.04s user 0.00s system 198% cpu 3.042 total