Adaptive numerical simulations with Trixi.jl: A case study of Julia for scientific computing